CREATE SERVER ROLE (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例
创建新的用户定义的服务器角色。
语法
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)。 有关详细信息,请参阅 ys.server_principals (Transact-SQL)。
可通过查询 sys.server_role_members 和 sys.server_principals 目录视图查看服务器角色。
不能向服务器角色授予对数据库级安全对象的权限。 若要创建数据库角色,请参阅 CREATE ROLE (Transact-SQL)。
有关设计权限系统的信息,请参阅 Getting Started with Database Engine Permissions。
权限
要求具有 CREATE SERVER ROLE 权限,或者 sysadmin 固定服务器角色中的成员身份。
还需要针对登录名的 server_principal 的 IMPERSONATE 权限、针对用作 server_principal的服务器角色的 ALTER 权限或用作 server_principal 的 Windows 组的成员身份。
这会触发对象类型设置为服务器角色、事件类型设置为添加的 Audit Server Principal Management 事件。
使用 AUTHORIZATION 选项分配服务器角色所有权时,还需要具有下列权限:
若要将服务器角色的所有权分配给另一个登录名,则需要对该登录名具有 IMPERSONATE 权限。
若要将服务器角色的所有权分配给另一个服务器角色,则需要具有被分配服务器角色的成员身份或对该服务器角色具有 ALTER 权限。
示例
A. 创建由登录名拥有的服务器角色
以下示例将创建一个由登录名 buyers
拥有的服务器角色 BenMiller
。
USE master;
CREATE SERVER ROLE buyers AUTHORIZATION BenMiller;
GO
B. 创建由固定服务器角色拥有的服务器角色
以下示例将创建一个由 auditors
固定服务器角色拥有的服务器角色 securityadmin
。
USE master;
CREATE SERVER ROLE auditors AUTHORIZATION securityadmin;
GO