我们在备份证书上收到 T-SQL (SQL Server 2008 R2) 错误: ERROR_NUMBER 15151,严重性 16,状态 1,过程 -,第 8 行,消息:找不到证书“certificate1”,因为它不存在或您没有权限。
我们可以在master.sys.certificates中看到证书。
我们的伪代码:
将一个未附加的 template_db 复制到 db1
附加 db1
创建证书 1(在主数据库的存储过程中)
生成@password
创建数据库加密 key ... 通过服务器证书加密 '+@certificate_name + ...(在 db1 的存储过程中)
使用 certificate1 为 db1 启用透明数据库加密。 (N'ALTER DATABASE '+@db_name+N' 设置加密')
N'备份证书 '+@certificate_name+N' TO FILE = '''+@certificate_file_path+N''' 带私钥( FILE = '''+@private_key_file_path+N''', 通过密码加密 = '''+@password+N''''
为了尝试解决该错误,我们每次在不同的数据库中使用 BACKUP CERTIFICATE 代码测试了三种方法,包括 db1 和 master。所有人都会遇到同样的错误。
有什么想法吗?谢谢。
最佳答案
我们再次尝试,在主数据库中运行 BACKUP CERTIFICATE,这次成功了。
关于sql-server - 找不到证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4696132/