gro*_*wse 5 security sql-server
我正在建立一个涉及 .NET 解决方案和 MSSQL 2008 数据库的持续集成解决方案。
我所有的构建服务器都位于一个名为Build Servers. 我已将DOMAIN\Build Servers对象创建为 MSSQL 登录名并授予该组dbcreator和securityadmin服务器角色。我没有授予任何特定的数据库角色,因为我的理解是这些服务器角色应该让该组中的任何 AD 帐户创建、更改、删除和数据库或用户。
我正在运行一个示例作业,它应该对特定数据库应用一些简单的修改。但是,我收到以下错误:
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$'.
Run Code Online (Sandbox Code Playgroud)
DOMAIN\BUILDSERVER01$ 肯定在 Build Servers 组中,因此它应该能够登录并更改任何数据库。
我是否在这里遗漏了一些明显的内容,或者我是否必须将此登录名映射到存在的每个数据库?
编辑
如果我授予sysadmin,它会起作用。嗯。
服务器角色是服务器范围的,适用于每个数据库,您遇到问题的原因是您授予的角色没有正确的权限:
当你说
“我正在运行一个示例作业,它应该对特定数据库应用一些简单的修改”
我认为这意味着您正在尝试更改现有数据库,这两个角色都不能提供打开或更改数据库内容的能力,实际上唯一的角色是 sysadmin 角色。
因此,您的选择是使该组成为 sysadmin 组的成员(该组的权限可能比您想授予的多),或者授予对单个数据库的权限(手动或脚本)。
SQL Server 的下一版本将允许创建用户定义的服务器角色。