ALTER ROLE (Transact-SQL)
適用於:Microsoft Fabric Microsoft網
狀架構倉儲中的 SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
SQL 分析端點
在資料庫角色中加入或移除成員,或變更使用者定義資料庫角色的名稱。
注意
若要在 Azure Synapse Analytics and Analytics Platform System 中新增或卸除角色的成員,請使用 sp_addrolemember (Transact-SQL) 和 sp_droprolemember (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)