ALTER ROLE (Transact-SQL)

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

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

語法

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

引數

  • role_name
    這是要變更的角色名稱。

  • ADD MEMBER database_principal
    將指定的資料庫主體加入至資料庫角色。 database_principal 可以是使用者或是使用者定義資料庫角色。 database_principal 不能是固定資料庫角色或伺服器主體。

  • DROP MEMBER database_principal
    從資料庫角色移除指定的資料庫主體。 database_principal 可以是使用者或是使用者定義資料庫角色。 database_principal 不能是固定資料庫角色或伺服器主體。

  • WITH NAME =new_name
    指定使用者定義角色的新名稱。 這個名稱不得已存在於資料庫中。 您無法變更固定資料庫角色的名稱。

備註

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

您可以在 sys.database_role_members 和 sys.database_principals 目錄檢視中看見資料庫角色。

警告注意事項注意

從 SQL Server 2005 開始,結構描述的行為已經變更。結果是,假設結構描述相當於資料庫使用者的程式碼可能不會傳回正確的結果。不應該在曾經使用下列任何一個 DDL 陳述式的資料庫中使用舊的目錄檢視 (包括 sysobjects):CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION。在此類資料庫中,必須改用新的目錄檢視。新的目錄檢視會考量 SQL Server 2005 中所導入的主體和結構描述的分隔。如需目錄檢視的詳細資訊,請參閱<目錄檢視 (Transact-SQL)>。

權限

需要資料庫的 ALTER ANY ROLE 權限、角色的 ALTER 權限,或 db_securityadmin 的成員資格。 將成員加入固定資料庫角色需要 db_owner 固定資料庫角色中的成員資格。

範例

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

下列範例會將角色 buyers 的名稱改成 purchasing。

USE AdventureWorks2012;
ALTER ROLE buyers WITH NAME = purchasing;
GO

B.新增和移除角色成員

下列範例會建立名為 Sales 的角色,新增然後移除名為 Barry 的使用者。

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

請參閱

參考

CREATE ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

sp_addrolemember (Transact-SQL)

sys.database_role_members (Transact-SQL)

sys.database_principals (Transact-SQL)

概念

主體 (Database Engine)