CREATE SERVER ROLE (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
新しいユーザー定義サーバー ロールを作成します。
構文
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. ログインが所有するサーバー ロールを作成する
次の例では、ログイン buyers
が所有するサーバー ロール BenMiller
を作成します。
USE master;
CREATE SERVER ROLE buyers AUTHORIZATION BenMiller;
GO
B. 固定サーバー ロールが所有するサーバー ロールを作成する
次の例では、固定サーバー ロール auditors
が所有するサーバー ロール securityadmin
を作成します。
USE master;
CREATE SERVER ROLE auditors AUTHORIZATION securityadmin;
GO