Sql-Server

如何更改 SQL Server 主密鑰密碼?

  • January 4, 2022

我創建了一個主密鑰,然後是一個證書並加密了我的數據庫。

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 選項重新創建數據庫主密鑰及其保護的所有密鑰。密鑰首先用舊的主密鑰解密,然後用新的主密鑰加密。這種資源密集型操作應安排在需求量低的時期,除非主密鑰已被洩露。

但是,請確保您了解更改密鑰的後果,並確保備份新密鑰。

查看我最近的文章以獲取更多詳細資訊。

一些注意事項:

  1. 您實際上並沒有使用 ALTER MASTER KEY REGENERATE 修改現有的主密鑰。您實際上是在解密依賴密鑰的任何內容,然後刪除舊密鑰並創建一個全新的密鑰,然後使用該新密鑰重新加密以前使用舊密鑰加密的所有內容。
  2. 您需要成為 sysadmin 組的成員才能更改主密鑰。此外,更改主密鑰不會解密和重新加密任何 TDE 加密的數據庫,它只是加密和重新加密已使用密鑰加密的*證書。*這些證書仍然有效,不會以任何方式修改;只是它們受到新的主密鑰的保護。
  3. 在腳本中保存密碼總是一個問題。過去我通過將與證書相關的腳本視為受保護來解決這個問題,就像我保護 TDE 密鑰一樣。在原始碼控制系統中,有必要對腳本應用訪問控制,以確保只有授權的系統管理員才能訪問它們。

引用自:https://dba.stackexchange.com/questions/233040