在VS17中的多个SQL Server数据库项目之间共享SQL登录

问题描述:

我有一个单独的SQL Server和两个数据库,用于更新我使用Visual Studio SSDT项目。在VS17中的多个SQL Server数据库项目之间共享SQL登录

在我的VS解决方案中,我有两个名为Db_1和Db_2的SQL数据库项目。 Db_2有大量填充数据的表。 Db_1内部我创建了一个从Db_2中选择数据的视图。

我在解决方案中遇到的问题是,如何在两个数据库项目之间共享SQL Server登录名,以便SQL Server登录名映射到多个用户。

我目前在Db_1项目中具有“CREATE LOGIN”(SQL身份验证)脚本,并且Db_1也具有对Db_2的引用,以便能够查看视图使用的表。

当我从Db_2添加到Db_1的引用,以便使用登录创建用户将授予选择表的权限,我得到一个循环引用。

是否有可能在两个sql数据库项目*享SQL Server登录名? 或者我应该以不同的方式来看待这个?

谢谢。

+0

基本上,你不应该使用SQL Server登录,你应该使用Windows登录。然后,您不必部署它们(或者更重要的是:在您的部署和配置中放置明文密码)。然而,有很多事情需要考虑,这些问题远远超出了这个问题的范围,主要是,您部署的基础设施是什么类型? –

+0

从你的问题来看,如果你使用了一台服务器和两个数据库,或者你使用了两台不同的服务器,这是不明确的。请确认它 – sepupic

+0

我已更新描述@sepupic。谢谢。 – ccosgrove

好吧,所以我不确定这是否是实现解决方案的最佳方式,但根据上面的说明,我有两个项目。我创建了一个名为common的第三个项目,然后在另外两个项目中引用了公共项目,并将服务器登录移到了那里。希望这可以帮助。仍然有兴趣知道是否有更好的方法来做到这一点。

+0

您需要将其引用为“相同的数据库”(当您引用数据库时,您有该选项)。在这种情况下,当您从Db_1或Db_2数据库发布这些登录信息时,您不需要单独发布该数据库。 –