找不到证书
我们在备份证书上收到 T-SQL (SQL Server 2008 R2) 错误: ERROR_NUMBER 15151,严重性 16,状态 1,过程 -,第 8 行,消息:找不到证书“certificate1”,因为它不存在或您没有权限。
我们可以在master.sys.certificates中看到证书。
我们的伪代码:
将未附加的 template_db 复制到 db1
附加 db1
创建证书1(在主数据库的存储过程中)
generate@password
CREATEDATABASEENCRYPTIONKEY…ENCRYPTIONBYSERVERCERTIFICATE'+@certificate_name+…(在db1中的存储过程中)
使用证书 1 为 db1 打开透明数据库加密。 (N'ALTER DATABASE '+@db_name+N' SET ENCRYPTION ON')
N'备份证书 '+@certificate_name+N' 至文件 = '''+@certificate_file_path+N''' 带私钥( 文件 = '''+@private_key_file_path+N''', 通过密码加密 = '''+@password+N''''
为了尝试解决该错误,我们每次在不同的数据库(包括 db1 和 master)中使用备份证书代码测试了三种方法。所有人都会遇到相同的错误。
有什么想法吗?谢谢。
We get a T-SQL (SQL Server 2008 R2) error on BACKUP CERTIFICATE:
ERROR_NUMBER 15151, SEVERITY 16, STATE 1, PROCEDURE -, LINE 8, MESSAGE: Cannot find the certificate 'certificate1', because it does not exist or you do not have permission.
We can see the certificate in master.sys.certificates.
Our pseudo-code:
copy an unattached template_db to db1
attach db1
create certificate1 (in stored procedure in master db)
generate @password
CREATE DATABASE ENCRYPTION KEY … ENCRYPTION BY SERVER CERTIFICATE '+@certificate_name +… (in stored procedure in db1)
turn on Transparent Database Encryption for db1 using certificate1.
(N'ALTER DATABASE '+@db_name+N' SET ENCRYPTION ON')N’BACKUP CERTIFICATE '+@certificate_name+N'
TO FILE = '''+@certificate_file_path+N'''
WITH PRIVATE KEY (
FILE = '''+@private_key_file_path+N''',
ENCRYPTION BY PASSWORD = '''+@password+N''''
To try to work-around the error, we tested three ways with the BACKUP CERTIFICATE code in a different databases each time, including db1 and master. All get the same error.
Any ideas? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我们再次尝试,在主数据库中运行 BACKUP CERTIFICATE,这次成功了。
We tried again, running BACKUP CERTIFICATE in the master DB, and it worked this time.