CREATE SERVER ROLE (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed Instance

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

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)」を参照してください。

権限システムの設計の詳細については、「 データベース エンジンの権限の概要」を参照してください。

アクセス許可

sysadmin 固定サーバー ロール CREATE SERVER ROLE 権限またはメンバーシップが必要です。

さらに、ログインのための 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  

次の手順