QA:附加数据库时,如果数据库主密钥的密码丢失怎么办?
当一个数据库被附加到一个新得sql server实例后,它的数据库主密钥(database master key)默认不会被服务器主密钥
(service master key)保护.在这种情况下,我们需要自己修改这种状态,使它被服务器主密钥保护。
但如果忘记了数据库主密钥得密码,则无法完成这项操作.
如何解决这一问题:
在原始实例上为db1的数据库添加新的密码,这样我们就可以在新的实例中使用这个密码了.
在原始实例上执行一下代码:
OPEN MASTER KEY DECRYPTION BY SERVICE MASTER KEY
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = 'p@s%word'
CLOSE MASTER KEY
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = 'p@s%word'
CLOSE MASTER KEY
在新实例中:
Code SnippetOPEN MASTER KEY DECRYPTION BY PASSWORD = 'p@s%word'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
CLOSE MASTER KEY
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
CLOSE MASTER KEY