Heim  >  Artikel  >  Datenbank  >  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
WBOYOriginal
2016-06-07 17:37:491055Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn