ALTER SERVER ROLE (Transact-SQL)

適用于:SQL Server Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)

變更伺服器角色的成員資格或變更使用者定義伺服器角色的名稱。 固定伺服器角色不能重新命名。

主題連結圖示Transact-SQL 語法慣例

語法

-- Syntax for SQL Server  
  
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 不能是固定伺服器角色、資料庫角色或系統管理員。

DROP MEMBER server_principal
從伺服器角色移除指定的伺服器主體。 server_principal 可以是登入或使用者定義的伺服器角色。 server_principal 不能是固定伺服器角色、資料庫角色或系統管理員。

WITH NAME =new_server_role_name
指定使用者定義伺服器角色的新名稱。 此名稱不能已存在於伺服器中。

備註

變更使用者定義伺服器角色的名稱不會變更角色的識別碼、擁有者或權限。

為變更角色成員資格,ALTER SERVER ROLE 會取代 sp_addsrvrolemember 和 sp_dropsrvrolemember。 這些預存程序都已被取代。

您可以查詢 sys.server_role_memberssys.server_principals 目錄檢視來檢視伺服器角色。

若要變更使用者定義伺服器角色的擁有者,請使用 ALTER AUTHORIZATION (Transact-SQL)

權限

需要伺服器的 ALTER ANY SERVER ROLE 權限,才能變更使用者定義伺服器角色的名稱。

固定伺服器角色

若要將成員加入至固定伺服器角色,您必須是該固定伺服器角色的成員,或是 sysadmin 固定伺服器角色的成員。

注意

CONTROL SERVERALTER ANY SERVER ROLE 權限並不足以執行固定伺服器角色的 ALTER SERVER ROLEALTER 權限亦無法授與固定伺服器角色。

使用者定義伺服器角色

若要將成員新增至使用者定義的伺服器角色,您必須是 sysadmin 固定伺服器角色的成員,或擁有 CONTROL SERVERALTER ANY SERVER ROLE 權限。 或者,您必須有該角色的 ALTER 權限。

注意

不同於固定伺服器角色,使用者定義伺服器角色的成員本來就沒有將成員加入至該相同角色的權限。

範例

A. 變更伺服器角色的名稱

下列範例會建立一個名為 Product 的伺服器角色,然後將伺服器角色名稱變更為 Production

CREATE SERVER ROLE Product ;  
ALTER SERVER ROLE Product WITH NAME = Production ;  
GO  

B. 將網域帳戶加入至伺服器角色

下列範例會將網域帳戶 adventure-works\roberto0 新增至使用者定義的伺服器角色 Production

ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;  

C. 將 SQL Server 登入加入至伺服器角色

下列範例會將名為 Ted SQL Server 登入新增至 diskadmin 固定伺服器角色。

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 的 Windows 登入新增至 LargeRC 固定伺服器角色中。

ALTER SERVER ROLE LargeRC ADD MEMBER Anna;  

I. 從資源類別移除登入。

下列範例會卸除 Anna 在 LargeRC 伺服器角色中的成員資格。

ALTER SERVER ROLE LargeRC DROP MEMBER Anna;  

另請參閱

CREATE SERVER ROLE (Transact-SQL)
DROP SERVER ROLE (Transact-SQL)
CREATE ROLE (Transact-SQL)
ALTER ROLE (Transact-SQL)
DROP ROLE (Transact-SQL)
安全性預存程序 (Transact-SQL)
安全性函數 (Transact-SQL)
主體 (Database Engine)
sys.server_role_members (Transact-SQL)
sys.server_principals (Transact-SQL)