【发布时间】:2014-08-06 21:01:17
【问题描述】:
如何在 Visual Studio 2010 数据库项目中拥有一个证书,该证书将根据项目中的更改创建、更新和删除,类似于它处理表、存储过程、键和其他对象的方式?
下面是我目前使用的语法,以及$(CertName)。
CREATE CERTIFICATE [$(CertName)]
AUTHORIZATION [dbo]
WITH SUBJECT = N'Encrypt Data', START_DATE = N'11/26/2012 15:13:03', EXPIRY_DATE = N'11/26/2013 15:13:03'
ACTIVE FOR BEGIN_DIALOG = ON;
我尝试使用下面的 if 语句检查它是否存在。
IF (select Count(*) from sys.symmetric_keys where name like '$(CertName)') = 0
BEGIN
--insert create statement
END
但是,由于我在对称密钥的定义中使用了证书,因此使用这种方法会出现以下错误。
SQL03006:对称密钥:[$(KeyName)] 具有对证书 [$(CertName)] 的未解析引用。
【问题讨论】:
-
作为一种解决方法,您可以建议对项目使用部署而不在构建中包含证书。
标签: sql-server visual-studio-2010 certificate database-project