Sql-Server
如何更改 SQL Server 主密鑰密碼?
我創建了一個主密鑰,然後是一個證書並加密了我的數據庫。
CREATE MASTER KEY ENCRYPTION BY PASSWORD='A Very Strong Password'; GO CREATE CERTIFICATE foo WITH SUBJECT='Database Encryption for Multi'; GO USE mydatabase GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE foo; GO ALTER DATABASE mydatabase SET ENCRYPTION ON; GO
如何更改 MASTER KEY 密碼?
謝謝
根據Microsoft Docs頁面,語法為:
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'password';
從該文件頁面:
REGENERATE 選項重新創建數據庫主密鑰及其保護的所有密鑰。密鑰首先用舊的主密鑰解密,然後用新的主密鑰加密。這種資源密集型操作應安排在需求量低的時期,除非主密鑰已被洩露。
但是,請確保您了解更改密鑰的後果,並確保備份新密鑰。
查看我最近的文章以獲取更多詳細資訊。
一些注意事項:
- 您實際上並沒有使用 ALTER MASTER KEY REGENERATE 修改現有的主密鑰。您實際上是在解密依賴密鑰的任何內容,然後刪除舊密鑰並創建一個全新的密鑰,然後使用該新密鑰重新加密以前使用舊密鑰加密的所有內容。
- 您需要成為 sysadmin 組的成員才能更改主密鑰。此外,更改主密鑰不會解密和重新加密任何 TDE 加密的數據庫,它只是加密和重新加密已使用密鑰加密的*證書。*這些證書仍然有效,不會以任何方式修改;只是它們受到新的主密鑰的保護。
- 在腳本中保存密碼總是一個問題。過去我通過將與證書相關的腳本視為受保護來解決這個問題,就像我保護 TDE 密鑰一樣。在原始碼控制系統中,有必要對腳本應用訪問控制,以確保只有授權的系統管理員才能訪問它們。