CREATE SERVER ROLE (Transact-SQL)

创建新的用户定义的服务器角色。

适用范围:SQL Server(SQL Server 2012 到当前版本)。

主题链接图标 Transact-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)。 有关详细信息,请参阅 sys.server_principals (Transact-SQL)

可通过查询 sys.server_role_memberssys.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)

EVENTDATA (Transact-SQL)

sp_addrolemember (Transact-SQL)

sys.database_role_members (Transact-SQL)

sys.database_principals (Transact-SQL)

概念

主体(数据库引擎)