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 apublic
, 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çõesINFORMATION_SCHEMA
para bancos de dados com dialeto GoogleSQL einformation_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çõesinformation_schema
(bancos de dados do dialeto PostgreSQL).
Função do sistema spanner_sys_reader
Esse papel tem o privilégio
SELECT
nas tabelasSPANNER_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:
GRANT ROLE pii_access TO ROLE spanner_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:GRANT ROLE public TO ROLE pii_access;
No entanto, é possível conceder a associação nos papéis
spanner_info_reader
espanner_sys_reader
. Por exemplo, as declarações a seguir são válidas.GoogleSQL
GRANT ROLE spanner_info_reader TO ROLE pii_access; GRANT ROLE spanner_sys_reader TO ROLE pii_access; ```
PostgreSQL
GRANT spanner_info_reader TO pii_access; GRANT spanner_sys_reader TO pii_access;
A seguir
- Saiba como configurar um controle de acesso minucioso.
- Saiba mais sobre o controle de acesso detalhado.