シーケンスのきめ細かいアクセス制御

このページでは、Spanner シーケンスでのきめ細かいアクセス制御の仕組みについて説明します。

きめ細かいアクセス制御が行われているユーザーの場合は、次のいずれかまたは両方の権限を付与して、シーケンス情報を読み取る、またはシーケンスから値を生成するためにアクセスすることを許可できます。

  • SELECT をシーケンスに付与して、パラメータとシーケンスの現在の状態に対する読み取りアクセスを許可します。

    GoogleSQL

    GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
    
  • UPDATE をシーケンスに付与して、シーケンス値生成ツールの呼び出しを許可します。

    GoogleSQL

    GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
    

シーケンス オペレーションに必要な権限

次の表に、特定のシーケンス オペレーションを実行する際に必要な権限の詳細を示します。

オペレーション 権限の要件

GoogleSQL:

GET_NEXT_SEQUENCE_VALUE()

PostgreSQL:

nextval()

シーケンスに対する UPDATE 権限または SELECT 権限が必要です。生成された列またはデフォルト値でこの関数を実行する場合は、列に対する INSERT 権限または UPDATE 権限も必要です。シーケンスの UPDATE 権限では、シーケンスを使用する列に対する権限が自動的に付与されることはありません。

GoogleSQL:

GET_INTERNAL_SEQUENCE_STATE()

PostgreSQL:

spanner.get_internal_sequence_state()

リクエストするシーケンスに対する SELECT 権限が必要です。

GoogleSQL:

INFORMATION_SCHEMA.SEQUENCES
INFORMATION_SCHEMA.SEQUENCE_OPTIONS

PostgreSQL

INFORMATION_SCHEMA.SEQUENCES

クエリを実行するシーケンスに対する SELECT 権限または UPDATE 権限を付与されることができます。表示できるのは、表示権限を付与されているシーケンスのみです。

次のステップ