ALTER ROLE (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
ユーザー定義ロールの新しい名前を指定します。 データベース内に存在しない名前を指定してください。 固定データベース ロールの名前は変更できません。
説明
データベース ロールの名前を変更しても、ロールの ID 番号、所有者、権限は変わりません。
データベース ロールは sys.database_role_members カタログ ビューおよび sys.database_principals カタログ ビューに表示されます。
注意 |
---|
SQL Server 2005 からスキーマの動作が変更されました。その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。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 のいずれかの DDL ステートメントが使用されたことのあるデータベースでは、sysobjects などの古いカタログ ビューを使用しないでください。そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。新しいカタログ ビューでは、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;
関連項目
参照
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)