PG_DEFAULT_ACL - Amazon Redshift

PG_DEFAULT_ACL

Almacena información acerca de los privilegios de acceso predeterminados. Para obtener más información acerca de los privilegios de acceso predeterminados, consulte ALTER DEFAULT PRIVILEGES.

Todos los usuarios pueden ver PG_DEFAULT_ACL. Los superusuarios pueden ver todas las filas; los usuarios normales solo pueden ver sus datos. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
defacluser integer El ID del usuario al que se aplican los privilegios mencionados.
defaclnamespace oid El ID de objeto del esquema en el que se aplican los privilegios predeterminados. Si no se especifica ningún esquema, el valor predeterminado es 0.
defaclobjtype character

El tipo de objeto al que se aplican los privilegios predeterminados. Los valores válidos son los siguientes:

  • r: relación (tabla o vista)

  • f: función

  • p: procedimiento almacenado

defaclacl aclitem[]

Una cadena que define los privilegios predeterminados para el usuario o grupo de usuarios especificados y el tipo de objeto.

Si se conceden los privilegios a un usuario, la cadena es de la siguiente forma:

{ username=privilegestring/grantor }

username

El nombre del usuario al que se le conceden los privilegios. Si se omite el username (nombre de usuario), los privilegios se conceden como PUBLIC.

Si se conceden los privilegios a un grupo de usuarios, la cadena es de la siguiente forma:

{ "group groupname=privilegestring/grantor" }

privilegestring

Una cadena que especifica qué privilegios se conceden.

Los valores válidos son:

  • r: SELECT (leer)

  • a: INSERT (añadir)

  • w: UPDATE (escribir)

  • d: DELETE

  • x: concede el privilegio para crear una restricción de clave externa (REFERENCES).

  • X: EXECUTE

  • *: indica que el usuario que recibe el privilegio anterior puede, a su vez, conceder el mismo privilegio a otros (WITH GRANT OPTION).

grantor

El nombre del usuario que concedió los privilegios.

En el siguiente ejemplo se indica que el usuario admin concedió todos los privilegios, incluido WITH GRANT OPTION, al usuario dbuser.

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

Ejemplo

La siguiente consulta devuelve todos los privilegios predeterminados definidos para la base de datos.

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

El resultado en el ejemplo anterior muestra que para todas las tablas nuevas creadas por el usuario admin en el esquema tickit, admin concede los privilegios SELECT a user1, los privilegios INSERT a group1 y los privilegios UPDATE a user2.