52.17. pg_default_acl #

O catálogo pg_default_acl armazena os privilégios iniciais a serem atribuídos a objetos recém-criados.

Tabela 52.17. Colunas de pg_default_acl

Coluna Tipo de dados

Descrição

oid oid

Identificador da linha

defaclrole oid (referencia pg_authid.oid)

OID da função de banco de dados (role) associada a esta entrada

defaclnamespace oid (referencia pg_namespace.oid)

OID do espaço de nomes associado a esta entrada, ou zero se nenhum

defaclobjtype char

O tipo de objeto para o qual esta entrada se destina: r = relação (tabela, visão), S = sequência, f = função, T = tipo de dados, n = esquema, L = objeto grande

defaclacl aclitem[]

Privilégios de acesso que este tipo de objeto deve ter na criação


Cada entrada de pg_default_acl mostra os privilégios iniciais a serem atribuídos a um objeto pertencente ao usuário indicado. No momento existem dois tipos de entrada: entradas globais com defaclnamespace = zero, e entradas per-schema que fazem referência a um esquema específico. Se estiver presente uma entrada global, então ela substitui os privilégios padrão normais conectados para o tipo de objeto. Uma entrada por esquema, se presente, representa os privilégios a serem adicionados aos privilégios padrão globais ou estabelecidos.

Note-se que, quando uma entrada ACL em outro catálogo é nula, ela é considerada como representando os privilégios padrão fixos para seu objeto, e não o que quer que esteja em pg_default_acl no momento. O catálogo pg_default_acl é consultado apenas durante a criação do objeto.

Exemplo 52.10. Exemplo do tradutor

Privilégios iniciais a serem atribuídos a objetos recém-criados

Uso do catálogo pg_default_acl para mostrar os privilégios iniciais a serem atribuídos a objetos recém-criados. Para isto é usado o esquema tutorial, que tem seus privilégios padrão alterados para permitir a usuária ana ter acesso de leitura, inserção, exclusão e atualização em todas as novas tabelas do esquema.

cristina=> ALTER DEFAULT PRIVILEGES IN SCHEMA tutorial
cristina-> GRANT SELECT, INSERT, DELETE, UPDATE ON TABLES TO ana;
ALTER DEFAULT PRIVILEGES
cristina=> SELECT oid,
cristina-> defaclrole::regrole::text,
cristina-> defaclnamespace::regnamespace::text,
cristina-> defaclobjtype,
cristina-> defaclacl
cristina-> FROM pg_default_acl\gx

-[ RECORD 1 ]---+--------------------
oid             | 117209
defaclrole      | cristina
defaclnamespace | tutorial
defaclobjtype   | r
defaclacl       | {ana=arwd/cristina}


52.17.1. Veja também #

ALTER DEFAULT PRIVILEGES, GRANT, REVOKE