CREATE SERVER ROLE (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed Instance

新しいユーザー定義サーバー ロールを作成します。

Transact-SQL 構文表記規則

構文

CREATE SERVER ROLE role_name [ AUTHORIZATION server_principal ]  

Note

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

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  

参照

DROP SERVER ROLE (Transact-SQL)
プリンシパル (データベース エンジン)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
データベース エンジンの権限の概要