针对序列的精细访问权限控制

本页面介绍了如何将精细访问权限控制与 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()

需要对序列拥有 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 您要查询的序列的特权。您只能看到 您有权查看的文件

后续步骤