摘要:[SQL]如何跨資料庫,讓對稱式加密金鑰共用(KEY,SYMMETRIC,ENCRYPTION,ENCRYP)
其實關鍵只在建立金鑰的時候,IDENTITY_VALUE還有KEY_SOURCE在兩個不同的資料庫一定都要一模一樣 這樣子做出來的金鑰就一樣了
我們先在資料庫 天字一號 還有資料庫 天字二號 執行下列一模一樣的指令,用以建立一樣的對稱式金鑰
CREATE SYMMETRIC KEY YEN_KEY WITH
IDENTITY_VALUE = 'IDENTITY VALUE OF YEN_KEY',
ALGORITHM = AES_256,
KEY_SOURCE = 'KEY SOURCE FOR YEN_KEY'
ENCRYPTION BY PASSWORD = 'ABCD_PASSWORD'
使用方法:
舉例來說我們先使用資料庫 天字一號 的金鑰去幫某個資料表叫做 無敵超人 資料表,並且幫某個欄位加密
OPEN SYMMETRIC KEY YEN_KEY DECRYPTION BY PASSWORD = 'ABCD_PASSWORD';
UPDATE 無敵超人 SET 欄位0 = encryptbykey(key_guid('YEN_KEY'),N'這是利用無敵超人資料庫的金鑰加密的文字')
WHERE sn = 1
然後再使用資料庫 天字二號的金鑰,去把天字一號的無敵超人資料庫的加密資料解出來
OPEN SYMMETRIC KEY YEN_KEY DECRYPTION BY PASSWORD = 'ABCD_PASSWORD';
select *,convert(nvarchar,DecryptByKey(欄位0)) FROM 天字一號.dbo.無敵超人
跨資料庫使用一樣的金鑰就這麼簡單囉