【问题标题】:Multiple-domain security with SSDT .sqlproj projects?SSDT .sqlproj 项目的多域安全性?
【发布时间】:2014-10-13 04:57:06
【问题描述】:

我正在做一个小型试点项目,尝试实施 Sql Server Data Tools sqlproj 项目,以便更好地将我们的数据库置于源代码控制之下。在我的组织中,我们有单独的非信任域用于各种目的的测试环境,因此这些域当然有自己的隔离活动目录帐户。

文档仍然有些稀少,我真的不知道从哪里获得有关此工具集的更多信息,尤其是考虑到 Visual Studio 数据库资产历史上的大量流失。

到目前为止,我真正想到的唯一想法是为每个单独的域的安全对象创建单独的 sqlproj 项目,与其他模式对象分开。我希望我能以某种方式将我的实际数据库架构与部署时的数据库架构联系起来,并以某种方式切换我在构建中使用的安全项目。我不知道这是否可行。

使用 Visual Studio sqlproj 项目的任何人都必须处理这个问题吗?这种事情有最佳实践吗?

【问题讨论】:

    标签: database visual-studio sql-server-data-tools sqlproj


    【解决方案1】:

    如果您对每个环境都有不同的设置,那么最简单的方法是在部署时将它们排除在外并且不删除它们,或者使用手动设置它们的部署后脚本。

    通常为了处理不同的配置,我建议使用 sql cmd 变量(在项目的属性中有一个用于设置这些的页面)但是当您创建登录时,您不能使用变量来创建它,这样就会失败!

    有一个示例说明如何为这种情况设置部署后包装器:

    http://schottsql.blogspot.co.uk/2013/05/ssdt-setting-different-permissions-per.html

    ssdt 祝你好运,有一些奇怪的怪癖,但它可以实现很多!

    【讨论】:

    • 感谢您的推荐,Ed。我正要发这个。 :) 使用发布配置文件让这一切变得更容易。
    • @PeterSchott 感谢您撰写本文!我正在尝试完成这些步骤,但生成登录列表有点困难,因为 sp_help_revlogin 仅适用于 SQL Server 2005,而我使用的是 2008 R2。特别是 master..sysxlogins 对象似乎不再存在。同样,我无法找到此 KB 的更新。这个解决方案是使用 2005 年的数据库编写的吗?
    • 你应该可以使用这个 sp_help_revlogin 它适用于 2014 年之前的 sql:support2.microsoft.com/kb/918992
    • Eddie 发布的内容 - 是的,我最初是从 2005 年的服务器生成的。是时候更新我的博文了。
    猜你喜欢
    • 1970-01-01
    • 2012-12-18
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多