ALTER ROLE (Transact-SQL)

適用于: MICROSOFT Fabric 倉儲中的 SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 SQL 分析端點

在資料庫角色中加入或移除成員,或變更使用者定義資料庫角色的名稱。

注意

若要在 Azure Synapse Analytics and Analytics Platform System 中新增或卸載角色的成員,請使用 sp_addrolemember (Transact-SQL) sp_droprolemember (Transact-SQL)

Transact-SQL 語法慣例

Syntax

SQL Server 的語法(從 2012 開始)、Azure SQL 受控執行個體、Azure SQL 資料庫 和 Microsoft Fabric。

ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  

2012 之前的 SQL Server 語法。

-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

role_name
適用於:SQL Server (從 2008 開始)、Azure SQL Database、Azure SQL 受控執行個體

指定要變更的資料庫角色。

ADD MEMBER database_principal
適用於:SQL Server (從 2012 開始)、Azure SQL Database、Azure SQL 受控執行個體

指定要將資料庫主體新增至資料庫角色成員資格中。

  • database_principal 可以是資料庫使用者或使用者定義的資料庫角色。

  • database_principal 不能是固定資料庫角色或伺服器主體。

DROP MEMBER database_principal
適用於:SQL Server (從 2012 開始)、Azure SQL Database、Azure SQL 受控執行個體

指定要從資料庫角色成員資格移除資料庫主體。

  • database_principal 可以是資料庫使用者或使用者定義的資料庫角色。

  • database_principal 不能是固定資料庫角色或伺服器主體。

WITH NAME = new_name
適用於:SQL Server (從 2008 開始)、Azure SQL Database、Azure SQL 受控執行個體

指定要變更使用者定義資料庫角色的名稱。 新的名稱不得已存在於資料庫中。

變更資料庫角色的名稱不會變更識別碼、擁有者或角色的權限。

權限

若要執行此命令,您需要一或多個這些權限或成員資格:

  • 角色的 ALTER 權限
  • 資料庫的 ALTER ANY ROLE 權限
  • db_securityadmin 固定資料庫角色中的成員資格

此外,若要變更您所需要之固定資料庫角色中的成員資格:

  • db_owner 固定資料庫角色中的成員資格

限制事項

您無法變更固定資料庫角色的名稱。

中繼資料

這些系統檢視包含資料庫角色和資料庫主體的相關資訊。

範例

A. 變更資料庫角色的名稱

適用於:SQL Server (從 2008 開始)、Azure SQL Database、Azure SQL 受控執行個體

下列範例會將角色 buyers 的名稱改成 purchasing。 這個範例可以在 AdventureWorks (英文) 範例資料庫中執行。

ALTER ROLE buyers WITH NAME = purchasing;  

B. 新增或移除角色成員

適用於:SQL Server (從 2012 開始)、Azure SQL Database、Azure SQL 受控執行個體

這個範例會建立名為 Sales 的新資料庫。 它會將名稱為 Barry 的資料庫使用者加入至成員資格中,然後顯示如何移除成員 Barry。 這個範例可以在 AdventureWorks (英文) 範例資料庫中執行。

CREATE ROLE Sales;  
ALTER ROLE Sales ADD MEMBER Barry;  
ALTER ROLE Sales DROP MEMBER Barry;  

C. 將角色成員新增至 Azure SQL Database 的特殊角色

適用於:Azure SQL Database

此範例會在虛擬 master 資料庫中建立 SQL 登入、建立與該伺服器登入相關的資料庫使用者,並將資料庫使用者新增為特殊角色 dbmanager 的成員。 此範例允許使用者在 Azure SQL Database 邏輯伺服器上建立和卸除資料庫的權限。 在 Azure SQL Database 邏輯伺服器的虛擬 master 資料庫中執行範例。

 CREATE LOGIN sqllogin_nlastname WITH password='aah3%#om1os';
    
 CREATE USER sqllogin_nlastname FOR LOGIN sqllogin_nlastname 
 WITH DEFAULT_SCHEMA = master;
    
 ALTER ROLE [dbmanager] add member sqllogin_nlastname;

另請參閱

CREATE ROLE (Transact-SQL)
主體 (資料庫引擎)
DROP ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)