This page explains how fine-grained access control works with Spanner sequences for GoogleSQL-dialect databases and PostgreSQL-dialect databases.
For fine-grained access control users, you can grant either one or both of the following privileges to allow access to read sequence information or generate values from the sequence.
Grant
SELECTon the sequence to allow read access to the parameters and current state of the sequence.GoogleSQL
GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;
PostgreSQL
GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
Grant
UPDATEon the sequence to allow calls to the sequence value generator.GoogleSQL
GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;
PostgreSQL
GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
Required privileges for sequence operations
The following table contains details about which privileges you require when performing a specific sequence operations.
| Operation | Privilege requirements | 
GoogleSQL: 
 PostgreSQL: 
  | 
   Requires an UPDATE or SELECT privilege on the
    sequence. Note that if you execute this function through generated columns
    or default values, you also need to have an INSERT or
    UPDATE privilege on the column. An UPDATE
    privilege on a sequence doesn't automatically grant any privilege on the
    columns where you want to use the sequence.
    | 
  
GoogleSQL: 
 PostgreSQL: 
  | 
   Requires the SELECT privilege on the sequence that you
    request.
    | 
  
GoogleSQL: 
 PostgreSQL 
  | 
   You can have the SELECT or UPDATE
     privilege on the sequence you want to query. You can only see the sequences
     that you have a privilege to view.
    | 
  
What's next
- Learn more about using sequences in Spanner.
 - Learn about 
SEQUENCEfor GoogleSQL or PostgreSQL. - Learn about sequence functions in GoogleSQL or PostgreSQL.
 - Learn about sequences in the 
INFORMATION_SCHEMAin GoogleSQL or PostgreSQL.