ALTER SERVER ROLE (Transact-SQL)
適用於:SQL Server Azure SQL 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 不能是固定伺服器角色、資料庫角色或系統管理員。
DROP MEMBER server_principal
從伺服器角色移除指定的伺服器主體。 server_principal 可以是登入或使用者定義的伺服器角色。 server_principal 不能是固定伺服器角色、資料庫角色或系統管理員。
WITH NAME =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. 從伺服器角色移除網域帳戶
下列範例會從使用者定義的伺服器角色 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;