ALTER ROLE (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
データベース ロールのメンバーを追加または削除するか、ユーザー定義のデータベース ロールの名前を変更します。
注意
Azure Synapse Analytics および Analytics Platform System (PDW) でロールのメンバーを追加したり削除したりするには、sp_addrolemember (Transact-SQL) と sp_droprolemember (Transact-SQL) を使用します。
構文
SQL Server (2012 以降)、Azure SQL Managed Instance、Azure SQL Database、および Microsoft Fabric の構文。
ALTER ROLE role_name
{
ADD MEMBER database_principal
| DROP MEMBER database_principal
| WITH NAME = new_name
}
[;]
SQL Server (2012 よりも前) の構文。
-- Change the name of a user-defined database role
ALTER ROLE role_name
WITH NAME = new_name
[;]
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
role_name
適用対象: SQL Server (2008 以降)、Azure SQL Database、Azure SQL Managed Instance
変更するデータベース ロールを指定します。
ADD MEMBER database_principal
適用対象: SQL Server (2012 以降)、Azure SQL Database、Azure SQL Managed Instance
データベース ロールのメンバーシップにデータベース プリンシパルを追加することを指定します。
database_principal はデータベース ユーザーまたはユーザー定義データベース ロールです。
database_principal には固定データベース ロールまたはサーバー プリンシパルは指定できません。
DROP MEMBER database_principal
適用対象: SQL Server (2012 以降)、Azure SQL Database、Azure SQL Managed Instance
データベース ロールのメンバーシップからデータベース プリンシパルを削除することを指定します。
database_principal はデータベース ユーザーまたはユーザー定義データベース ロールです。
database_principal には固定データベース ロールまたはサーバー プリンシパルは指定できません。
WITH NAME = new_name
適用対象: SQL Server (2008 以降)、Azure SQL Database、Azure SQL Managed Instance
ユーザー定義データベース ロールの名前を変更することを指定します。 データベース内に存在しない新しい名前を指定してください。
データベース ロールの名前を変更しても、ロールの ID 番号、所有者、権限は変わりません。
アクセス許可
このコマンドを実行するには、以下の権限またはメンバーシップの 1 つ以上が必要です。
- ロールに対する ALTER 権限
- データベースに対する ALTER ANY ROLE 権限
- db_securityadmin 固定データベース ロールのメンバーシップ
また、固定データベース ロールのメンバーシップを変更するには以下が必要です。
- db_owner 固定データベース ロールのメンバーシップ
制限事項と制約事項
固定データベース ロールの名前は変更できません。
メタデータ
これらのシステム ビューには、データベース ロールとデータベース プリンシパルに関する情報が格納されます。
例
A. データベース ロールの名前の変更
適用対象: SQL Server (2008 以降)、Azure SQL Database、Azure SQL Managed Instance
次の例では、ロール buyers
の名前を purchasing
に変更します。 この例では、AdventureWorks サンプル データベースで実行できます。
ALTER ROLE buyers WITH NAME = purchasing;
B. ロール メンバーの追加または削除
適用対象: SQL Server (2012 以降)、Azure SQL Database、Azure SQL Managed Instance
この例では、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)