SQL Server 加密/解密
資料當然需要保護,SQL Server有不同加密方式
接著整個資料庫有「被複製」的風險
自SQL Server2008企業版後
就有所謂「透明式加密」方式防止外洩
資料庫離開指定的伺服器,就會失效
不論是用備份方式帶走,或整個磁碟抽走
只要沒有當初設立的憑證,那只要掛在別的SQL Server就讀取不了
當然真的有需要移機房時,就要記得憑證要跟著
- 憑證加密
- 非對證式金鑰
- 對稱式
- 片語加密
這邊記錄憑證加密的指令
最重要一句是:
憑證很重要,千萬要備份!
最重要一句是:
憑證很重要,千萬要備份!
CREATE TABLE 加密表 ( 編號 INT, 資料 NVARCHAR(5), 加密資料 VARBINARY(MAX) ) --1. 啟用該資料庫的 master key CREATE MASTER KEY ENCRYPTION BY PASSWORD='aAzZ111' --2. 建立憑證 CREATE CERTIFICATE 加密憑憑 WITH SUBJECT = '用來加密的憑證',EXPIRY_DATE = '2014-12-31' --BACKUP CERTIFICATE 加密憑憑,務必要記得備份 --以加密方式Insert進資料表 INSERT INTO 加密表 VALUES(1,N'憑憑憑憑',ENCRYPTBYCERT(CERT_ID('加密憑憑'),N'憑憑憑憑')) INSERT INTO 加密表 VALUES(2,N'證證證證',ENCRYPTBYCERT(CERT_ID('加密憑憑'),N'證證證證')) SELECT * FROM 加密表 --以解密方式查出資料表 SELECT 編號,資料 , CONVERT(NCHAR,DECRYPTBYCERT(CERT_ID('加密憑憑'),加密資料)) AS 解密後資料 FROM 加密表
接著整個資料庫有「被複製」的風險
自SQL Server2008企業版後
就有所謂「透明式加密」方式防止外洩
資料庫離開指定的伺服器,就會失效
不論是用備份方式帶走,或整個磁碟抽走
只要沒有當初設立的憑證,那只要掛在別的SQL Server就讀取不了
當然真的有需要移機房時,就要記得憑證要跟著
--透明式加密(企業版才有) --只能用在非系統資料庫 USE master --1. 啟用 master 資料庫的 master key CREATE MASTER KEY ENCRYPTION BY PASSWORD='aAzZ111' --2. 在 master 資料庫中建立憑證 CREATE CERTIFICATE 透明憑憑 WITH SUBJECT='用來透明式加密用的憑証',EXPIRY_DATE='2014-12-31' USE 新新 --3. 設定欲使用透明式加密的資料庫的加密方式 CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE 透明憑憑 GO --4. 啟用資料庫透明式加密 ALTER DATABASE 新新 SET ENCRYPTION ON
留言
張貼留言