ALTER SERVER ROLE (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Analytics Platform System (PDW)
更改服务器角色的成员关系或更改用户定义的服务器角色的名称。 无法重命名固定服务器角色。
语法
-- Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance
ALTER SERVER ROLE server_role_name
{
[ ADD MEMBER server_principal ]
| [ DROP MEMBER server_principal ]
| [ WITH NAME = new_server_role_name ]
} [ ; ]
-- Syntax for Parallel Data Warehouse
ALTER SERVER ROLE server_role_name ADD MEMBER login;
ALTER SERVER ROLE server_role_name DROP MEMBER login;
参数
server_role_name
要更改的服务器角色的名称。
ADD MEMBER server_principal
将指定的服务器主体添加到服务器角色中。 server_principal 可以是登录名或用户定义的服务器角色。 server_principal 不能是固定服务器角色、数据库角色或 sa。
DROP MEMBER server_principal
从服务器角色中删除指定的服务器主体。 server_principal 可以是登录名或用户定义的服务器角色。 server_principal 不能是固定服务器角色、数据库角色或 sa。
WITH NAME =new_server_role_name
指定用户定义的服务器角色的新名称。 服务器中不能已存在此名称。
备注
更改用户定义的服务器角色名称并不会更改角色的 ID 号、所有者或权限。
为了更改角色成员身份,ALTER SERVER ROLE
会替换 sp_addsrvrolemember 和 sp_dropsrvrolemember。 不推荐使用这些存储过程。
您可以通过查询 sys.server_role_members
和 sys.server_principals
目录视图来查看服务器角色。
若要更改用户定义的服务器角色的所有者,请使用 ALTER AUTHORIZATION (Transact-SQL)。
在 Azure SQL 数据库中,ALTER SERVER ROLE
必须在 master
数据库中运行。
权限
要求在服务器上具有 ALTER ANY SERVER ROLE
权限才能更改用户定义的服务器角色的名称。
固定服务器角色
若要为固定服务器角色添加成员,您必须是该固定服务器角色的成员,或者是 sysadmin
固定服务器角色的成员。
注意
CONTROL SERVER
和 ALTER ANY SERVER ROLE
权限不足以为固定服务器角色执行 ALTER SERVER ROLE
,并且不能为固定服务器角色授予 ALTER
权限。
用户定义的服务器角色
若要为用户定义的服务器角色添加成员,您必须是 sysadmin
固定服务器角色的成员,或者具有 CONTROL SERVER
或 ALTER ANY SERVER ROLE
权限。 否则,必须具有该角色的 ALTER
权限。
注意
与固定服务器角色不同,用户定义的服务器角色的成员本身并不具备为该同一角色添加成员的权限。
示例
A. 更改服务器的名称
以下示例创建一个名为 Product
的服务器角色,然后将该服务器角色的名称更改为 Production
。
CREATE SERVER ROLE Product ;
ALTER SERVER ROLE Product WITH NAME = Production ;
GO
B. 在服务器角色中添加域帐户
以下示例在名为 Production
的用户定义服务器角色中添加一个名为 adventure-works\roberto0
的域帐户。
ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;
C. 在服务器角色中添加 SQL Server 登录名
以下示例在 diskadmin
固定服务器角色中添加一个名为 Ted
的 SQL Server 登录名。
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
D. 从服务器角色中移除域帐户
以下示例从名为 Production
的用户定义服务器角色中删除一个名为 adventure-works\roberto0
的域帐户。
ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;
E. 从服务器角色中移除 SQL Server 登录名
以下示例从 diskadmin
固定服务器角色中删除 SQL Server 登录名 Ted
。
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F. 为登录名授予权限以将登录名添加到用户定义的服务器角色中
以下示例允许 Ted
将其他登录名添加到名为 Production
的用户定义服务器角色中。
GRANT ALTER ON SERVER ROLE::Production TO Ted ;
GO
G. 查看角色成员身份
若要查看角色成员身份,请使用 SQL Server Management Studio 中的服务器角色(成员)页或执行以下查询:
SELECT SRM.role_principal_id, SP.name AS Role_Name,
SRM.member_principal_id, SP2.name AS Member_Name
FROM sys.server_role_members AS SRM
JOIN sys.server_principals AS SP
ON SRM.Role_principal_id = SP.principal_id
JOIN sys.server_principals AS SP2
ON SRM.member_principal_id = SP2.principal_id
ORDER BY SP.name, SP2.name
示例:Analytics Platform System (PDW)
H. 在服务器角色中添加成员
以下示例将登录名 Anna
添加到 LargeRC
服务器角色中。
ALTER SERVER ROLE LargeRC ADD MEMBER Anna;
I. 从资源类中移除登录
以下示例在 LargeRC
服务器角色中删除 Anna 成员身份。
ALTER SERVER ROLE LargeRC DROP MEMBER Anna;