Microsoft SSDT (10.3.21208.0)/数据层项目 (MSVS 2010) 和项目与引用的数据库项目之间的"Sharing"/复制的证书



我正在编写SQL Server(目标是2008R2和2012)存储过程和公共/引用表的"框架"。每个SSDT/日期层项目代表这个框架内的不同组件(可以在同一个数据库中)(例如,MasterDBExtensions项目在主数据库中有存储过程扩展/添加项,SQLServerAgentExtensions (msdb)等)。

我开发了一个非常严格的基于Schema、数据库角色和证书的安全模型。

我的问题是我如何在活动项目和引用项目之间"共享"/复制这些证书,以便当我将活动项目发布到SQL Server时,证书被正确复制等(顺便说一下,我需要共享/复制跨数据库对象访问的证书,以便我不需要打开可信标志,服务代理,以及链接服务器访问)。

为了澄清,我有一些TSQL代码来代表我的意思:

use [DatabaseA]
Create Certificate [MyCertFromA] ...
Backup Certificate [MyCertFromA] to File = 'MyCertFromA.cert'
use [DatabaseB]
Create Certificate [MyCertFromA] from File = 'MyCertFromA.cert'

SSDT/Data-tier将不允许我放置Backup和Create/From语句(我得到"此语句在此上下文中不被识别")。如果我将备份证书移动到Pre/Post脚本,我就会遇到文件权限和其他问题(例如,未找到证书)。此外,如果我在其他项目中使用该项目作为数据库参考,则Pre/Post脚本不会运行。

所以…我做错了什么,或者有人对这些问题有任何建议吗?

谢谢!

环境:SQL Server 2012(我也针对SQL Server 2008R2), MSVS 2010, SqlServer数据工具2012年12月,SQL Sever数据层应用程序框架2013年5月,c# 4.0

看起来这已经回答了一些CTP4证书问题-有时服务器,有时数据库范围

最新更新