PG_DEFAULT_ACL - Amazon Redshift

PG_DEFAULT_ACL

Armazena informações sobre privilégios de acesso padrão. Para mais informações sobre privilégios de acesso padrão, consulte ALTER DEFAULT PRIVILEGES.

PG_DEFAUL_ACL é visível para todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para obter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.

Colunas da tabela

Nome da coluna Tipo de dados Descrição
defacluser inteiro ID do usuário a que os privilégios listados são aplicados.
defaclnamespace oid O ID de objeto do esquema onde os privilégios padrão são aplicados. Se nenhum esquema for especificado, o valor padrão será 0.
defaclobjtype caractere

O tipo de objeto ao qual os privilégios padrão são aplicados. Os valores válidos são os seguintes:

  • r–relation (tabela ou visualização)

  • f-function

  • Procedimento p-stored

defaclacl aclitem[]

Uma string que define os privilégios padrão para o usuário ou o grupo de usuários especificado e o tipo de objeto.

Se os privilégios forem concedidos a um usuário, a string estará na seguinte forma:

{ username=privilegestring/grantor }

nome de usuário

O nome do usuário ao qual privilégios são concedidos. Se o nome do usuário for omitido, os privilégios serão concedidos a PUBLIC.

Se os privilégios forem concedidos a um grupo de usuários, a string estará na seguinte forma:

{ "group groupname=privilegestring/grantor" }

privilegestring

Uma string que especifica quais privilégios são concedidos.

Os valores válidos são:

  • r–SELECT (leitura)

  • a–INSERT (anexo)

  • w-UPDATE (gravação)

  • d–DELETE

  • x– Concede o privilégio de criar uma restrição de chave externa (REFERENCES).

  • X–EXECUTE

  • *–Indica que o usuário que recebe o privilégio anterior pode, por sua vez, conceder o mesmo privilégio a outros (WITH GRANT OPTION).

concessor

O nome do usuário que concedeu os privilégios.

O exemplo a seguir indica que o usuário admin concedeu todos os privilégios, inclusive WITH GRANT OPTION, ao usuário dbuser.

dbuser=r*a*w*d*x*X*/admin

Exemplo

A consulta a seguir retorna todos os privilégios padrão definidos para o banco de dados.

select pg_get_userbyid(d.defacluser) as user, n.nspname as schema, case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end as object_type, array_to_string(d.defaclacl, ' + ') as default_privileges from pg_catalog.pg_default_acl d left join pg_catalog.pg_namespace n on n.oid = d.defaclnamespace; user | schema | object_type | default_privileges -------+--------+-------------+------------------------------------------------------- admin | tickit | tables | user1=r/admin + "group group1=a/admin" + user2=w/admin

O resultado no exemplo anterior mostra que, para todas as tabelas novas criadas pelo usuário admin no esquema tickit, admin concede privilégios SELECT a user1, privilégios INSERT a group1 e privilégios UPDATE a user2.