CREATE SERVER ROLE (Transact-SQL)
创建新的用户定义的服务器角色。
适用范围:SQL Server(SQL Server 2012 到当前版本)。 |
语法
CREATE SERVER ROLE role_name [ AUTHORIZATION server_principal ]
参数
role_name
待创建的服务器角色的名称。AUTHORIZATION server_principal
将拥有新服务器角色的登录名。 如果未指定登录名,则执行 CREATE SERVER ROLE 的登录名将拥有该服务器角色。
注释
服务器角色是服务器级别的安全对象。 创建服务器角色后,使用 GRANT、DENY 和 REVOKE 配置角色的服务器级别权限。 若要在数据库角色中添加登录名或从中删除登录名,请使用 ALTER SERVER ROLE (Transact-SQL)。 若要删除服务器角色,请使用 DROP SERVER ROLE (Transact-SQL)。 有关详细信息,请参阅 sys.server_principals (Transact-SQL)。
可通过查询 sys.server_role_members 和 sys.server_principals 目录视图查看服务器角色。
不能向服务器角色授予对数据库级安全对象的权限。 若要创建数据库角色,请参阅 CREATE ROLE (Transact-SQL)。
权限
要求具有 CREATE SERVER ROLE 权限,或者具有 sysadmin 固定服务器角色的成员身份。
还需要针对登录名的 server_principal 的 IMPERSONATE 权限、针对用作 server_principal 的服务器角色的 ALTER 权限或用作 server_principal 的 Windows 组的成员身份。
这将触发对象类型设置为服务器角色、事件类型设置为添加的 Audit Server Principal Management 事件。
使用 AUTHORIZATION 选项分配服务器角色所有权时,还需要具有下列权限:
若要将服务器角色的所有权分配给另一个登录名,则需要对该登录名具有 IMPERSONATE 权限。
若要将服务器角色的所有权分配给另一个服务器角色,则需要具有被分配服务器角色的成员身份或对该服务器角色具有 ALTER 权限。
示例
A.创建由登录名拥有的服务器角色
以下示例将创建一个由登录名 BenMiller 拥有的服务器角色 buyers。
USE master;
CREATE SERVER ROLE buyers AUTHORIZATION BenMiller;
GO
B.创建由固定服务器角色拥有的服务器角色
以下示例将创建一个由 securityadmin 固定服务器角色拥有的服务器角色 auditors。
USE master;
CREATE SERVER ROLE auditors AUTHORIZATION securityadmin;
GO
请参阅
参考
DROP SERVER ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)