我该如何处理数据库项目中的用户?

时间:2014-11-18 21:32:02

标签: sql-server-2012 database-project sql-server-2012-datatools

我们有两种环境 - 开发环境和生产环境。

我们在开发环境中拥有与生产环境不同的用户组,但似乎并不是在数据库项目中表示这一点的好方法 - 每当我们部署它时都会消灭现有用户,我们只能有一套 - 生产用户或开发用户。

我想过包含基于SQLCMD变量切换的脚本来创建合适的用户,但这看起来很糟糕。

我觉得我错过了数据库项目的某些部分,因为这似乎是一种在任何地方都会出现的情况。数据库项目是否有能力处理在不同环境中创建不同的用户/角色成员资格集?

existing question about 2008R2似乎表明没有,但我乐观地认为2012年可能会有一些变化来提供此功能。

1 个答案:

答案 0 :(得分:2)

可悲的是,这是SSDT缺乏的一个领域。您需要以不同方式构建权限和用户。我已经写了我们在这里使用过的方法(用Jamie Thomson的道具来表达这个想法):http://schottsql.blogspot.com/2013/05/ssdt-setting-different-permissions-per.html

基本上,我们在一系列脚本中构建权限,并根据传递给SQLPackage命令的变量应用它们。这也使我们在其他方面具有一定的灵活性,例如在这些环境中不运行某些脚本,但第一次设置是一件痛苦的事。