細かいアクセス制御システムロール

このページでは、データベースごとに細かいアクセス制御が提供する 3 つの事前定義システムロールの特性、制約、用途について説明します。システムロールにはそれぞれ一連の異なる権限があり、取り消すことはできません。この情報は、GoogleSQL 言語データベースと PostgreSQL 言語データベースの両方に適用されます。

public システムロール

  • 細かいアクセス制御のユーザーはすべて、デフォルトで public に IAM メンバーシップを持っています。

  • すべてのデータベース ロールは、このロールから権限を継承します。

  • もともと public に権限はありませんが、権限を付与することが可能です。public に権限を付与すると、その権限は以降に作成されたデータベース ロールを含むすべてのデータベース ロールで有効になります。

spanner_info_reader システムロール

  • このロールには、GoogleSQL 言語データベースの INFORMATION_SCHEMA ビューと PostgreSQL 言語の information_schema ビューに対する SELECT 権限があります。

  • spanner_info_reader に他の権限は付与できません。

  • INFORMATION_SCHEMA ビュー(GoogleSQL 言語データベース)または information_schema ビュー(PostgreSQL 言語データベース)へのフィルタされていない読み取りアクセス権が必要なデータベース ロールにこのロールのメンバーシップを付与します。

spanner_sys_reader システムロール

  • このロールには、SPANNER_SYS テーブルに対する SELECT 権限があります。

  • spanner_sys_reader に他の権限は付与できません。

  • SPANNER_SYS スキーマへの読み取りアクセス権が必要なデータベース ロールにこのロールのメンバーシップを付与します。

システムロールに対する制限

  • DROP ROLE ステートメントを使用してシステムロールを削除することはできません。

  • システムロールを他のデータベース ロールのメンバーにすることはできません。つまり、次の GoogleSQL ステートメントは無効です。

    GRANT ROLE pii_access TO ROLE spanner_info_reader;
    
  • public ロールのメンバーシップをデータベース ロールに付与することはできません。たとえば、次の GoogleSQL ステートメントも無効です。

    GRANT ROLE public TO ROLE pii_access;
    

    ただし、spanner_info_reader ロールと spanner_sys_reader ロールのメンバーシップは付与できます。たとえば、以下は有効なステートメントです。

    GoogleSQL

      GRANT ROLE spanner_info_reader TO ROLE pii_access;
      GRANT ROLE spanner_sys_reader TO ROLE pii_access;
      ```
    

    PostgreSQL

    GRANT spanner_info_reader TO pii_access;
    GRANT spanner_sys_reader TO pii_access;
    

次のステップ