溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Server中怎么防止開發(fā)人員獲取敏感數(shù)據(jù)

發(fā)布時間:2021-07-26 10:43:42 來源:億速云 閱讀:160 作者:Leah 欄目:數(shù)據(jù)庫

這篇文章給大家介紹SQL Server中怎么防止開發(fā)人員獲取敏感數(shù)據(jù),內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

***步,創(chuàng)建數(shù)據(jù)庫主密鑰

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='SysKey'  GO

這里創(chuàng)建了數(shù)據(jù)庫主密鑰,比如密碼是'SysKey'。主密鑰只需要創(chuàng)建一次。

第二步,創(chuàng)建證書

CREATE CERTIFICATE MYCERT  with SUBJECT = 'My Cert'  GO

這里創(chuàng)建了證書MYCERT,證書的元數(shù)據(jù)中的字段為'My Cert'。證書創(chuàng)建一次,以后解密時需要先Open。

第三步,創(chuàng)建對稱密鑰

CREATE SYMMETRIC KEY MYKEY   WITH ALGORITHM = AES_256   ENCRYPTION BY CERTIFICATE MYCERT;  GO

這里基于證書MYCERT創(chuàng)建了密鑰MYKEY,加密算法為AES_256。加密算法有好幾種。

前三步做完之后,我們可以在資源管理器中看到我們的證書和密鑰信息,如下圖所示:

SQL Server中怎么防止開發(fā)人員獲取敏感數(shù)據(jù)

第四步:加密解密有效性測試

我們先通過變量測試加密解密的有效性:

OPEN SYMMETRIC KEY MYKEY DECRYPTION BY CERTIFICATE MYCERT;  declare @key varbinary(MAX);  set @key=EncryptByKey(key_guid('MYKEY'),'20000.00');  select @key;  select convert(varchar(100), DecryptByKey(@key));

在解密之前,要先打開我們定義的密鑰,通過:

OPEN SYMMETRIC KEY NCSK DECRYPTION BY CERTIFICATE NCSC;

這句打開密鑰,如果不先打開密鑰,返回的將會是NULL。

運行參考結果參考下圖:

SQL Server中怎么防止開發(fā)人員獲取敏感數(shù)據(jù)

第五步,準備使用的數(shù)據(jù)

為了描述方便,我們創(chuàng)建一個工資表變量:

declare @Salary table(   FName nvarchar(50),   FSalary varbinary(MAX));

這里要注意,存放加密數(shù)據(jù)的字段要設置成varbinary類型。

第六步,插入加密數(shù)據(jù)

插入時,要使用函數(shù)EncryptByKey對文本進行加密,通過函數(shù)key_guid獲取密鑰,加密后的數(shù)據(jù)類型為varbinary。

insert into @Salary(FName,FSalary)  values  ('張三',EncryptByKey(key_guid('MYKEY'),'20000.00')),  ('李四',EncryptByKey(key_guid('MYKEY'),'25000.00')),  ('王二',EncryptByKey(key_guid('MYKEY'),'30000.00'));

第七步:數(shù)據(jù)讀取

讀取數(shù)據(jù)時需要調(diào)用函數(shù)DecryptByKey解密,通過Convert將解密后的Varbinary轉換成varchar類型。

select *,convert(varchar, DecryptByKey(FSalary)) from @Salary;

完整的處理請參考下圖:

SQL Server中怎么防止開發(fā)人員獲取敏感數(shù)據(jù)

關于SQL Server中怎么防止開發(fā)人員獲取敏感數(shù)據(jù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI