ALTER SERVER ROLE (Transact-SQL)

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

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

語法

ALTER SERVER ROLE server_role_name 
{
    [ ADD MEMBER server_principal ]
  | [ DROP MEMBER server_principal ]
  | [ WITH NAME = new_server_role_name ]
} [ ; ]

引數

  • 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
    指定使用者定義伺服器角色的新名稱。 此名稱不能已存在於伺服器中。

備註

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

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

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

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

權限

需要伺服器的 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 登入加入至伺服器角色

下列範例會將 SQL Server 登入 Ted 加入至 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

請參閱

參考

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)

sys.server_role_members (Transact-SQL)

sys.server_principals (Transact-SQL)

概念

主體 (Database Engine)