欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Msg 15581 Please create a master key in the database or ope

程序员文章站 2022-05-14 18:03:21
...

今天测试将加密的数据库还原到另外一台服务器,执行解密代码的时候出现下面的错误信息:Msg15581,Level16,State3,Line1Pleasecreatea&..

今天测试将加密的数据库还原到另外一台服务器,执行解密代码的时候出现下面的错误信息:

Msg 15581, Level 16, State 3, Line 1

Please create a master key in the database or open themaster key in the session before performing this operation.

解决办法1:用密码打开Database Master key

Msg 15581 Please create a master key in the database or ope

解决办法2:可以还原服务主密匙。

Msg 15581 Please create a master key in the database or ope

参考:OPEN MASTER KEY RESTORESERVICE MASTER KEY (Transact-SQL)

注意: 因为ServiceMaster Key是加密层次的根,如果有其他数据库已经用Service Master Key做过加密会导致问题,所以慎重使用。

原因: 默认情况下,数据库主密钥使用服务主密钥进行加密,,需要此数据库主密钥进行解密或加密时,它将自动打开。如果数据库第一次附加或还原到新的 SQL Server 实例时,数据库主密钥(由服务主密钥加密)的副本尚未存储在服务器中。 必须使用 OPEN MASTER KEY 语句解密数据库主密钥 (DMK)。 一旦 DMK 解密后,通过使用 ALTER MASTER KEY REGENERATE 语句向服务器提供 DMK(使用服务主密钥 (SMK) 加密)的副本,即可拥有将来启用自动解密的选项。

本文出自 “关注SQL Server技术” 博客,请务必保留此出处