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

Posted

技术标签:

【中文标题】Microsoft SSDT (10.3.21208.0)/数据层项目 (MSVS 2010) 和项目与引用数据库项目之间的“共享”/复制证书【英文标题】:Microsoft SSDT (10.3.21208.0)/Data-tier Project (MSVS 2010) and "Sharing"/Copied Certificates between the Project and Referenced Database Project 【发布时间】:2013-05-09 16:49:35 【问题描述】:

我正在编写 SQL Server(针对 2008R2 和 2012)存储过程和公共/参考表的“框架”。每个 SSDT/Date-tier 项目代表该框架内的不同组件(可以在同一数据库中)(例如,MasterDBExtensions 项目在主数据库、SQLServerAgentExtensions (msdb) 等中具有存储过程扩展/附加组件)。

我在很大程度上基于架构、数据库角色和证书开发了一个非常严格的安全模型。

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

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

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

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

SSDT/数据层不允许我放置 Backup and Create/From 语句(我得到“此语句在此上下文中无法识别”)。如果我将备份证书移动到前/后脚本,我会遇到文件权限问题和其他问题(例如,未找到证书)。此外,如果我将该项目用作其他项目中的数据库引用,则 Pre/Post 脚本不会运行。

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

谢谢!

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

【问题讨论】:

【参考方案1】:

CTP4 Certficate issue - sometimes server, sometimes database scoped 似乎已经回答了这个问题

【讨论】:

以上是关于Microsoft SSDT (10.3.21208.0)/数据层项目 (MSVS 2010) 和项目与引用数据库项目之间的“共享”/复制证书的主要内容,如果未能解决你的问题,请参考以下文章

VS2013缺少报表工具

商业智能 - 用于Visual Studio 2013的SSDT

SQL Server -- 下载 SQL Server Data Tools (SSDT)

sql express 2012 on vs 2010 with ssdt not working

错误 MSB4019 - MSBUILD 正在寻找不存在版本的导入

Win10中如何枚举所有SSDT