CREATE SERVER ROLE (Transact-SQL)
新しいユーザー定義サーバー ロールを作成します。
構文
CREATE SERVER ROLE role_name [ AUTHORIZATION server_principal ]
引数
role_name
作成するサーバー ロールの名前を指定します。AUTHORIZATION server_principal
新しいサーバー ロールを所有するログインです。 ログインを指定しない場合、サーバー ロールは CREATE SERVER ROLE を実行するログインが所有します。
説明
サーバー ロールは、サーバー レベルのセキュリティ保護可能なリソースです。 サーバー ロールを作成した後は、GRANT、DENY、および REVOKE を使って、ロールのサーバー レベルの権限を構成します。 サーバー ロールのログインを追加または削除するには、ALTER SERVER ROLE (Transact-SQL) を使用します。 サーバー ロールを削除するには、DROP SERVER ROLE (Transact-SQL) を使用します。 詳細については、「sys.server_principals (Transact-SQL)」を参照してください。
サーバー ロールを確認するには、sys.server_role_members および sys.server_principals カタログ ビューに対してクエリを実行します。
データベース レベルのセキュリティ保護可能なリソースに対する権限をサーバー ロールに付与することはできません。 データベース ロールを作成する方法の詳細については、「CREATE ROLE (Transact-SQL)」を参照してください。
権限
CREATE SERVER ROLE 権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。
さらに、ログインのための server_principal に対する IMPERSONATE 権限、server_principal として使用されるサーバー ロールのための ALTER 権限、または server_principal として使用される Windows グループのメンバーシップも必要です。
これにより、サーバー ロールとして設定されたオブジェクトの種類と追加するイベントの種類に基づいて Audit Server Principal Management イベントが発生します。
AUTHORIZATION オプションを使用してサーバー ロールの所有権を割り当てる場合は、次の権限も必要です。
サーバー ロールの所有権を別のログインに割り当てるには、そのログインに対する IMPERSONATE 権限が必要です。
サーバー ロールの所有権を別のサーバー ロールに割り当てるには、割り当て先のサーバー ロールのメンバーシップまたはそのサーバー ロールに対する ALTER 権限が必要です。
使用例
A. ログインが所有するサーバー ロールを作成する
次の例では、ログイン BenMiller が所有するサーバー ロール buyers を作成します。
USE master;
CREATE SERVER ROLE buyers AUTHORIZATION BenMiller;
GO
B. 固定サーバー ロールが所有するサーバー ロールを作成する
次の例では、固定サーバー ロール securityadmin が所有するサーバー ロール auditors を作成します。
USE master;
CREATE SERVER ROLE auditors AUTHORIZATION securityadmin;
GO
関連項目
参照
DROP SERVER ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)