序列的精細存取權控管

本頁面說明精細存取權控管如何搭配使用 Spanner 序列,適用於 GoogleSQL 方言資料庫和 PostgreSQL 方言資料庫。

如要精細控管存取權,您可以授予下列一或多項權限,允許使用者讀取序號資訊或從序號產生值。

  • 在序列上授予 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()

您必須具備序列的 UPDATESELECT 權限。請注意,如果您透過產生的資料欄或預設值執行這項函式,您也必須擁有資料欄的 INSERTUPDATE 權限。序列的 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

您必須擁有要查詢序列的 SELECTUPDATE 權限。您只能查看有權檢視的序列。

後續步驟