在 SQL Server Management Studio (SSMS) 中要備份資料庫可以使用滑鼠右鍵點擊 資料庫 > 工作 > 備份:
在「備份選項」中有「加密」的區塊,但是預設是無法勾選:
依照文字描述,需要到「媒體選項」勾選「備份至新的媒體集,並清除所有現有的備份組」才可以勾選「加密」:
但是回到「加密」區塊,會發現不論選擇什麼「演算法」,「憑證或非對稱金鑰」都是空的,沒有任何選項可以選擇:
我們可以使用指令來建立憑證。
首先要先切換到 master 資料庫:
建立主金鑰(Master Key):
建立完成後可以使用下面的語法查詢到已建立的主金鑰:
建立憑證:
建立完成後可以使用下面的語法查詢到已建立的憑證:
建立對稱金鑰(SymmetricKey):
建立完成後可以使用下面的語法查詢到已建立的對稱金鑰:
為了避免金鑰遺失,我們可以使用下面的指令備份金鑰:
建立資料庫加密金鑰 (DEK, Database Encryption Key):
再回到「備份選項」>「加密」的「憑證或非對稱金鑰」就可以找到剛剛建立的憑證了:
參考資料:
Microsoft.Learn - Backup encryption
在「備份選項」中有「加密」的區塊,但是預設是無法勾選:
依照文字描述,需要到「媒體選項」勾選「備份至新的媒體集,並清除所有現有的備份組」才可以勾選「加密」:
但是回到「加密」區塊,會發現不論選擇什麼「演算法」,「憑證或非對稱金鑰」都是空的,沒有任何選項可以選擇:
我們可以使用指令來建立憑證。
首先要先切換到 master 資料庫:
USE master;
建立主金鑰(Master Key):
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MY_PASSWORD123';
建立完成後可以使用下面的語法查詢到已建立的主金鑰:
SELECT * FROM sys.symmetric_keys;
建立憑證:
CREATE CERTIFICATE MyCert WITH SUBJECT = 'My Cert';
建立完成後可以使用下面的語法查詢到已建立的憑證:
SELECT * FROM sys.certificates;
建立對稱金鑰(SymmetricKey):
CREATE SYMMETRIC KEY MySymmetricKey
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE MyCert;
建立完成後可以使用下面的語法查詢到已建立的對稱金鑰:
SELECT * FROM sys.symmetric_keys;
為了避免金鑰遺失,我們可以使用下面的指令備份金鑰:
BACKUP CERTIFICATE MyCert
TO FILE = 'C:\Backup\MyCert.cer'
WITH PRIVATE KEY
(
FILE = 'C:\Backup\MyCert.pvk',
ENCRYPTION BY PASSWORD = 'MY_PASSWORD123'
);
建立資料庫加密金鑰 (DEK, Database Encryption Key):
USE mydb; -- 切換到要備份的資料庫
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyCert;
GO
再回到「備份選項」>「加密」的「憑證或非對稱金鑰」就可以找到剛剛建立的憑證了:
參考資料:
Microsoft.Learn - Backup encryption
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com