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

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

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;
    

詳細

詳しくは以下をご覧ください。