找不到证书

use*_*756 3 sql-server certificate sql-server-2008 sql-server-2008-r2

我们在备份证书上收到 T-SQL (SQL Server 2008 R2) 错误:\nERROR_NUMBER 15151、SEVERITY 16、STATE 1、PROCEDURE -、LINE 8、MESSAGE:找不到证书“certificate1”,因为它不存在或者您没有权限。

\n\n

我们可以在master.sys.certificates中看到证书。

\n\n

我们的伪代码:

\n\n
    \n
  • 将未附加的 template_db 复制到 db1

  • \n
  • 附加 db1

  • \n
  • 创建certificate1(在主数据库的存储过程中)

  • \n
  • 生成@password

  • \n
  • 创建数据库加密密钥 \xe2\x80\xa6 通过服务器证书加密 '+@certificate_name +\xe2\x80\xa6 (在 db1 的存储过程中)

  • \n
  • 使用证书 1 打开 db1 的透明数据库加密。\n(N'ALTER DATABASE '+@db_name+N' SET ENCRYPTION ON')

  • \n
  • N\xe2\x80\x99备份证书 '+@certificate_name+N'\nTO FILE = '''+@certificate_file_path+N'''\n带私钥 (\nFILE = '''+@private_key_file_path+N''', \n密码加密 = '''+@password+N''''

  • \n
\n\n

为了尝试解决该错误,我们每次在不同的数据库(包括 db1 和 master)中使用 BACKUP CERTIFICATE 代码测试了三种方法。所有人都会遇到相同的错误。

\n\n

有任何想法吗?谢谢。

\n

use*_*756 5

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