题:
我正在尝试创建一个(自签名)证书并跨多个数据库和实例进行部署。
我创建和备份证书:
USE MASTER
CREATE CERTIFICATE DavesCert ENCRYPTION BY PASSWORD ='S3creT!' WITH SUBJECT = 'The master cert'
BACKUP CERTIFICATE DavesCert TO FILE = 'd:\DavesCert.cer'
WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = 'S3creT!' ,
FILE = 'd:\DavesCert.pvk' ,
ENCRYPTION BY PASSWORD = 'S3creT!' );
Run Code Online (Sandbox Code Playgroud)
我用
USE FOO
GO
CREATE CERTIFICATE ERecruitStatsGatheringCert
FROM FILE = 'd:\DavesCert.cer'
WITH PRIVATE KEY (FILE = 'd:\DavesCert.pvk',
DECRYPTION BY PASSWORD = 'S3creT!')
Run Code Online (Sandbox Code Playgroud)
并收到以下错误:“请在数据库中创建主密钥或在执行此操作之前在会话中打开主密钥。”
我不想创建数据库主密钥。我很高兴根据需要通过密码解密证书。
背景: SaaS 应用程序。数据库和实例之间的多对多关系。
我需要每个数据库都能够通过执行一个存储过程来查询它自己的统计信息,该存储过程包含对 DMV 的一些调用以返回统计信息。
应用程序在低权限帐户下运行。DMV 需要 VIEW SERVER STATE …