ALTER ROLE (Transact-SQL)

適用于: SQL Server Azure SQL資料庫Azure SQL 受控執行個體

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

注意

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

Transact-SQL 語法慣例

Syntax

-- Syntax for SQL Server (starting with 2012), Azure SQL Managed Instance, and Azure SQL Database  
  
ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  
-- Syntax for SQL Server 2008
  
-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

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

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

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

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

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

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

DROP MEMBER database_principal
適用于:從 2012) 開始SQL Server (,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. 新增或移除角色成員

適用于:從 2012) 開始SQL Server (,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資料庫

此範例會在虛擬 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)
Database Engine (主體)
DROP ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)