GRANT ROLE¶
ユーザーまたは別のロールにロールを割り当てます。
ロールを別のロールに付与すると、ロール間に「親子」関係が作成されます(ロール階層 とも呼ばれます)。
ユーザーにロールを付与すると、ユーザーはロールに許可されたすべての操作を(ロールに付与されたアクセス権を介して)実行できます。
詳細については、 アクセス制御の概要 をご参照ください。
構文¶
GRANT ROLE <name> TO { ROLE <parent_role_name> | USER <user_name> }
パラメーター¶
name付与するロールの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
ROLE parent_role_name指定されたロールにロールを付与します。
USER user_name指定されたユーザーにロールを付与します。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
|---|---|---|
OWNERSHIP |
ロール |
ユーザーまたは別のロールに付与されるロール。 |
または、MANAGE GRANTS グローバル権限を持つロールを使用します。Only the SECURITYADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
これらのロールのロール階層はSnowflakeによって定義および維持されるため、 PUBLIC を含むシステム定義のロールを他のロールに付与する必要はありません。
例¶
GRANT ROLE analyst TO ROLE SYSADMIN;
GRANT ROLE analyst TO USER user1;