我正在build立一个涉及.NET解决scheme和MSSQL 2008数据库的持续集成解决scheme。
我所有的构build服务器都位于名为“ Build Servers的AD安全组中。 我已经创build了DOMAIN\Build Servers对象作为MSSQLlogin名,并授予了组的dbcreator和securityadmin服务器angular色。 我还没有授予任何特定的数据库angular色,因为我的理解是,这些服务器angular色应让该组中的任何AD帐户创build,更改,删除和数据库或用户。
我正在运行一个样例作业,应该对特定数据库应用一些简单的修改。 但是,我收到以下错误:
Detailed message Cannot open database "awesome-database" requested by the login. The login failed. Database.dbschema : Deploy error TSD01234: Login failed for user 'DOMAIN\BUILDSERVER01$'.
DOMAIN\BUILDSERVER01$肯定在Build Servers组中,所以它应该能够login和修改任何数据库。
我错过了这里明显的东西,还是我必须去映射这个login到每一个存在的数据库?
编辑
如果我授予sysadmin ,它的作品。 嗯。
服务器angular色是服务器范围广,适用于每个数据库,您遇到问题的原因是因为您授予的angular色没有正确的权限:
当你说
“我正在运行一个样例作业,应该对某个特定的数据库进行一些简单的修改”
我假设这意味着你正试图改变一个现有的数据库,这些angular色都不能提供打开或更改数据库内容的能力,实际上这只是系统pipe理员angular色。
因此,您的select是将该组设为sysadmin组的成员(可能拥有比您想要授予的权利更多的权限),或授予个人数据库(手动或脚本)的权限。
SQL Server的下一个版本将允许创build用户定义的服务器angular色。