首頁  >  文章  >  資料庫  >  Msg 15581 Please create a master key in the database or ope

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

WBOY
WBOY原創
2016-06-07 17:37:491088瀏覽

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

 

160426969.png

 

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

 

160428520.png

参考: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技术” 博客,请务必保留此出处

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn