GRANT DATABASE ROLE ... TO SHARE

共有にデータベースロールを付与します。データベースロールを付与すると、1つのデータベースに対する権限が共有に事実上追加され、1つ以上のコンシューマーアカウントと共有できるようになります。

コンシューマーが共有からデータベースを作成した後、共有データベースロールをアカウント内のロールに付与して、それらのロールを持つユーザーが共有内のデータベースオブジェクトにアクセスできるようにします。

詳細については、 Secure Data Sharingの紹介 および 共有の操作 をご参照ください。

こちらもご参照ください。

REVOKE DATABASE ROLE ... FROM SHARE

構文

GRANT DATABASE ROLE <name>
  TO SHARE <share_name>
Copy

パラメーター

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