ALTER SERVER ROLE (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例

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

Transact-SQL 語法慣例

語法

-- 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 ]  
} [ ; ]  

引數

server_role_name

這是要變更的伺服器角色名稱。

新增會員 server_principal

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

取消會員 server_principal

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

名稱 =new_server_role_name

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

備註

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

為變更角色成員資格,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. 將網域帳戶新增至伺服器角色

下列範例會將網域帳戶 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. 從伺服器角色移除網域帳戶

下列範例會從使用者定義的伺服器角色 adventure-works\roberto0 移除網域帳戶 Production。

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

E. 從伺服器角色移除 SQL Server 登入

下列範例會從 Ted 固定伺服器角色移除 SQL Server 登入 diskadmin。

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