找不到证书

发布于 2024-10-12 02:39:36 字数 801 浏览 5 评论 0原文

我们在备份证书上收到 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不弃不离 2024-10-19 02:39:36

我们再次尝试,在主数据库中运行 BACKUP CERTIFICATE,这次成功了。

We tried again, running BACKUP CERTIFICATE in the master DB, and it worked this time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文