Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página define as características, restrições e o uso pretendido das
três funções predefinidas do sistema que o controle de acesso refinado oferece para
cada banco de dados. Cada função do sistema tem um conjunto diferente de privilégios, que não pode
ser revogado. Essas informações se aplicam a bancos de dados com dialeto GoogleSQL e PostgreSQL.
Função do sistema public
Todos os usuários do controle de acesso detalhado têm a associação do IAM em public
por padrão.
Todos os papéis de banco de dados herdam privilégios dessa função.
Inicialmente, public não tem privilégios, mas você pode conceder privilégios a ele.
Se você conceder um privilégio a public, ele estará disponível para
todos os papéis do banco de dados, incluindo os criados depois.
Função do sistema spanner_info_reader
Essa função tem o privilégio SELECT nas visualizações INFORMATION_SCHEMA para bancos de dados com dialeto GoogleSQL e information_schema para bancos de dados com dialeto PostgreSQL.
Não é possível conceder outros privilégios a spanner_info_reader.
Conceda a associação a esta função a qualquer papel do banco de dados que precise ter
acesso de leitura não filtrado às visualizações INFORMATION_SCHEMA (bancos de dados do dialeto GoogleSQL) ou
às visualizações information_schema (bancos de dados do dialeto PostgreSQL).
Função do sistema spanner_sys_reader
Esse papel tem o privilégio SELECT nas tabelas SPANNER_SYS.
Não é possível conceder outros privilégios a spanner_sys_reader.
Conceda a associação a essa função a qualquer papel do banco de dados que precise ter acesso de leitura
ao esquema SPANNER_SYS.
Restrições em papéis do sistema
Não é possível excluir uma função do sistema usando uma instrução DROP ROLE.
As funções do sistema não podem ser membros de outras funções do banco de dados. Ou seja, a seguinte
instrução do GoogleSQL é inválida:
GRANTROLEpii_accessTOROLEspanner_info_reader;
Não é possível conceder a associação ao papel public
aos papéis do banco de dados. Por exemplo, a seguinte instrução do GoogleSQL também é inválida:
GRANTROLEpublicTOROLEpii_access;
No entanto, é possível conceder a associação nos papéis spanner_info_reader e
spanner_sys_reader. Por exemplo, as declarações a seguir são válidas.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-05 UTC."],[],[],null,["# Fine-grained access control system roles\n\nThis page defines the characteristics, constraints, and intended use of the\nthree predefined system roles that fine-grained access control provides for\neach database. Each system role has a different set of privileges, which can't\nbe revoked. This information applies to both GoogleSQL-dialect databases and PostgreSQL-dialect databases.\n\n### `public` system role\n\n- All fine-grained access control users have IAM membership in `public`\n by default.\n\n- All database roles inherit privileges from this role.\n\n- Initially, `public` has no privileges, but you can grant it privileges.\n If you grant a privilege to `public`, it's available to\n all database roles, including database roles created afterward.\n\n### `spanner_info_reader` system role\n\n- This role has the `SELECT` privilege on\n [`INFORMATION_SCHEMA`](/spanner/docs/information-schema) views for GoogleSQL-dialect databases and\n [`information_schema`](/spanner/docs/information-schema-pg) views for PostgreSQL-dialect databases.\n\n- You can't grant any other privileges to `spanner_info_reader`.\n\n- Grant membership in this role to any database role that needs to have\n unfiltered read access to the `INFORMATION_SCHEMA` views (GoogleSQL-dialect databases) or\n the `information_schema` views (PostgreSQL-dialect databases).\n\n### `spanner_sys_reader` system role\n\n- This role has the `SELECT` privilege on `SPANNER_SYS` tables.\n\n- You can't grant any other privileges to `spanner_sys_reader`.\n\n- Grant membership in this role to any database role that must have read access\n to the `SPANNER_SYS` schema.\n\nRestrictions on system roles\n----------------------------\n\n- You can't delete a system role by using a `DROP ROLE` statement.\n\n- System roles can't be members of other database roles. That is, the following\n GoogleSQL statement is invalid:\n\n GRANT ROLE pii_access TO ROLE spanner_info_reader;\n\n- You can't grant membership in the `public`\n role to your database roles. For example, the following GoogleSQL\n statement is also invalid:\n\n GRANT ROLE public TO ROLE pii_access;\n\n However, you can grant membership in the `spanner_info_reader` and\n `spanner_sys_reader` roles. For example, the following are valid statements. \n\n ### GoogleSQL\n\n GRANT ROLE spanner_info_reader TO ROLE pii_access;\n GRANT ROLE spanner_sys_reader TO ROLE pii_access;\n ```\n\n ### PostgreSQL\n\n GRANT spanner_info_reader TO pii_access;\n GRANT spanner_sys_reader TO pii_access;\n\nWhat's next\n-----------\n\n- Learn how to [Configure fine-grained access control](/spanner/docs/configure-fgac).\n- Learn [About fine-grained access control](/spanner/docs/fgac-about)."]]