GRANT DATABASE ROLE ... TO SHARE¶
共有にデータベースロールを付与します。データベースロールを付与すると、1つのデータベースに対する権限が共有に事実上追加され、1つ以上のコンシューマーアカウントと共有できるようになります。
コンシューマーが共有からデータベースを作成した後、共有データベースロールをアカウント内のロールに付与して、それらのロールを持つユーザーが共有内のデータベースオブジェクトにアクセスできるようにします。
詳細については、 Secure Data Sharingについて および 共有の作成と設定 をご参照ください。
- こちらもご参照ください。
構文¶
GRANT DATABASE ROLE <name>
  TO SHARE <share_name>
パラメーター¶
- name
- データベースロールの識別子(つまり、名前)を指定します。ロールが作成されるデータベース内で一意にする必要があります。 - 識別子はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: - "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。- 識別子が完全修飾されていない場合( - db_name.database_role_nameの形式)、コマンドはセッションの現在のデータベースでデータベースロールを検索します。
- share_name
- 指定されたデータベースロールが付与される共有の識別子を指定します。 
使用上の注意¶
- DDL またはその他の制限された権限がデータベースロールに付与されている場合は、共有へのデータベースロールの付与に失敗します。データベースロールは、データベースとそのオブジェクトに対する読み取り専用アクティビティの権限のみを付与できます。 
- 共有データベースロールは将来の付与をサポートしません。Snowflakeは、実行するアクションに応じて次のエラーメッセージを返します。 - オブジェクトに対する将来の権限をデータベースロールに付与し、データベースロールを共有に付与します。 - GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1; GRANT DATABASE ROLE dbr1 TO SHARE myshare; Copy- Cannot share a database role with future grants to it.
- 共有にデータベースロールを付与し、オブジェクトに対する将来の権限をデータベースロールに付与します。 - GRANT DATABASE ROLE dbr1 TO SHARE myshare; GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1; Copy- Cannot grant future grants to a database role that is granted to a share.
 - 以下のコマンドを使用して、データベースロールに関連付けられた将来の付与があるかどうかを識別し、これらのエラーメッセージを回避します。 - SHOW FUTURE GRANTS IN DATABASE parent_db; SHOW FUTURE GRANTS IN shared_schema; Copy
例¶
データベース d1 のデータベースロール dr1 を共有 share1 に付与します。
GRANT DATABASE ROLE d1.dr1 TO SHARE share1;Copy