CREATE ROLE¶
システムで新しいロールを作成するか、既存のロールを置き換えます。
ロールを作成後にオブジェクト権限を付与し、そのロールを他のロールまたは個々のユーザーに付与して、システム内のオブジェクトのアクセス制御セキュリティを有効にできます。
このコマンドは次のバリアントをサポートしています。
- CREATE OR ALTER ROLE: ロールが存在しない場合はロールを作成するか、既存のロールを変更します。 
- こちらもご参照ください。
- GRANT <権限> ... TO ROLE、 GRANT ROLE、 GRANT OWNERSHIP、 DROP ROLE、 ALTER ROLE、 SHOW ROLES 
構文¶
CREATE [ OR REPLACE ] ROLE [ IF NOT EXISTS ] <name>
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
バリアント構文¶
CREATE OR ALTER ROLE¶
ロールがまだ存在しない場合は新規に作成し、存在する場合は既存のロールをステートメントで定義されたロールに変換します。CREATE OR ALTER ROLE ステートメントは、 CREATE ROLE ステートメントの構文ルールに従い、このステートメントには ALTER ROLE ステートメントと同じ制限があります。
CREATE OR ALTER ROLE <name>
  [ COMMENT = '<string_literal>' ]
詳細については、 CREATE OR ALTER ROLE の使用上の注意 をご参照ください。
必須パラメーター¶
- name
- ロールの識別子。アカウントに対して一意である必要があります。 - 識別子はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: - "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。- 詳細については、 識別子の要件 をご参照ください。 
オプションのパラメーター¶
- COMMENT = 'string_literal'
- ロールのコメントを指定します。 - デフォルト: 値なし 
- TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
- タグ の名前とタグ文字列の値を指定します。 - タグ値は常に文字列であり、タグ値の最大文字数は256です。 - ステートメントでのタグの指定に関する情報については、 オブジェクトのタグクォータ をご参照ください。 
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
| 権限 | オブジェクト | 注意 | 
|---|---|---|
| CREATE ROLE | アカウント | Only the USERADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. | 
| OWNERSHIP | データベースロール | 既存 のロールに対して CREATE OR ALTER ROLE ステートメントを実行するために必要です。 OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). | 
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
一般的な使用上の注意¶
- メタデータについて。 - 注意 - Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。 
- OR REPLACEと- IF NOT EXISTS句は互いに排他的です。両方を同じステートメントで使うことはできません。
- CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。 
CREATE OR ALTER ROLE の使用上の注意¶
- ALTER ROLE コマンドのすべての制限が適用されます。 
- タグの設定や設定解除はサポートされていませんが、既存のタグは CREATE OR ALTER ROLE ステートメントによって変更されることはなく、そのまま残ります。 
例¶
CREATE ROLE myrole;