sql server中怎麼給資料庫表中的使用者密碼加密

2021-03-27 11:27:33 字數 2219 閱讀 2500

1樓:我欲有夢

1、測試使用sql servre 2012 r2,建立如下的資料表:

--建立測試用的使用者表

create table tbluser

(name             nvarchar(30),

password         varbinary(1000),    )go

2、建立資料庫主金鑰

資料庫主金鑰(database master key)在服務主金鑰之下,由服務主金鑰進行加密。這是一個資料庫級別的金鑰,可以用於為建立資料庫級別的證書或非對稱金鑰提供加密。每一個資料庫只能有一個資料庫主金鑰,通過t-sql語句建立。

具體**如下:

--建立資料庫主金鑰

create master key encryption by password ='passw@ord'

go3、建立證書

建立一個用來加密對稱祕鑰證書,具體**如下:

--建立證書

create certificate testcert with subject = 'test certificate'

go4、建立一個對稱祕鑰

由sql server加密層次結構可以看出,對稱金鑰可以通過密碼建立,也可以通過其它對稱金鑰、非對稱金鑰和證書建立。本文以證書建立一個測試用的對稱祕鑰,具體**如下:

--建立對稱金鑰

create symmetric key testsymmetric with algorithm = aes_256

encryption by certificate testcert

go5、加密資料

先開啟證對稱祕鑰,再使用encryptbykey函式加密資料,完成後關閉對稱祕鑰。具體**如下:

--使用對稱祕鑰加密資料

open symmetric key testsymmetric decryption by certificate testcert;

insert into tbluser values('張三', encryptbykey(key_guid(n'testsymmetric'), '123456'));

close symmetric key testsymmetric;

go6、檢視加密後的資料

直接下sql查詢加密後的資料,可以看到password的內容是一串不可以閱讀的16進位制的字元。

--檢視加密後的資料

select * from tbluser

go7、解密資料

先開啟證對稱祕鑰,再使用decryptbykey函式解密資料,完成後關閉對稱祕鑰。具體**如下:

--解密資料

open symmetric key testsymmetric decryption by certificate testcert;

select name, cast(decryptbykey(password) as varchar(100)) password from tbluser;

close symmetric key testsymmetric;go

2樓:匿名使用者

在sql2005下自帶的函式hashbytes() ,此函式是微軟在sql server 2005中提供的,可以用來計算一個字串的 md5 和 sha1 值,使用方法如下:

--獲取123456的md5加密串

select hashbytes('md5', '123456') ;

--獲取123456的sha1加密串

select hashbytes('sha1', '123456') ;有了這個函式可以在sqlserver中為字串進行加密,但是hashbytes() 函式的返回結果是 varbinary型別,(以 0x 開頭 16 進位制形式的二進位制資料)通常情況下,我們需要的都是字串型的資料,很多人首先想到的可能就是用 cast 或 convert 函式將varbinary 轉換為 varchar,但這樣轉換後的結果會是亂碼,正確轉換 varbinary 可變長度二進位制型資料到 16 進位制字串應該使用系統內建函式 sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select sys.

fn_varbintohexstr(hashbytes('md5', '123456'))

然後就可以擷取需要的部分select lower(right(sys.fn_varbintohexstr(hashbytes('md5','123456')),32))為md5加密串。

SQL SERVER 2019資料庫中的檔案怎麼拷貝在U盤裡

兩種方法 1 在 sql server 配置管理器 中將你的sql server服務停止,然後將你安裝資料庫檔案中的data資料夾下的 你的資料庫名.mdf和你的資料庫名.ldf資料夾拷給別人,最後拿到該檔案的人,直接在mssql2005的 sql server management studio ...

c怎麼連線sql server資料庫

using system using system.collections.generic using system.linq using system.text using system.data.sqlclient namespace sqlserverconnection t sqlreade...

在SQL server 2019怎麼附加資料庫檔案

1.首先從開始選單著手,開啟開始選單欄,在選單欄上找到我們已經安裝的sql server 2008,單擊開啟它 2.開啟sql server 2008資料庫,來到登入介面,在這裡我們只需要輸入登入伺服器名 電腦ip地址 登入身份 賬號 密碼,然後單擊登入 注意 我們用的是sql身份登入,這裡還可以選...