VS数据库项目用户创建错误

时间:2015-06-09 17:53:02

标签: visual-studio-2013 database-project

我正在尝试在本地针对SQLExpress实例发布以测试VS数据库项目的发布功能,并且我遇到了一个错误,它正在尝试创建已存在于数据库中的用户。用户创建不是'被包裹在IF EXISTS中,我没有看到任何类型的设置来控制或强制执行此操作。

具体来说,它正在抛出: 创建[xyz \ abc46518] ... (208,1):SQL72014:.Net SqlClient数据提供者:消息15063,级别16,状态1,行1登录已经有一个不同用户名下的帐户。 (208,0):SQL72045:脚本执行错误。执行的脚本: 创建用户[xyz \ abc46518]登录[xyz \ abc46518];

虽然脚本的其他部分有'IF EXISTS'和'IF NOT EXISTS',但脚本的这一部分却没有。

我希望能够将其作为脚本的一部分来控制数据库中的用户。如果有人选择授予访问权限并且它不在源代码中,那么在部署时它就会消失。

1 个答案:

答案 0 :(得分:0)

我开始使用数据库项目,除了用户权限外,它们都很棒。 我只对我们的数据库拥有dba权限,而处理登录则在服务器级别。

因此,在创建数据库项目时,我会生成以下代码:

为登录创建用户[用户名]

当我去构建项目时会出错。

嗯,我想要用户,但不想要跟踪部署后脚本的麻烦,主要是因为它们破坏了我可爱的TFS结构。

我的解决方案,这有点像黑客,而不是创建用户,我只是创建了一个具有相同名称的角色:

创建角色[用户名]     授权[dbo];

现在我可以为用户分配对象的权限(我知道所有访问都应该通过角色,但不是我的数据库,所以我很高兴能够修复)

我们自己从不部署角色,因此对我们的开发者来说,无论是角色还是用户都无关紧要。