sql >> Base de Datos >  >> RDS >> PostgreSQL

Concesión de privilegios de PostgreSQL no visible

Una lista de cosas que no entendiste:

  1. ALTER DEFAULT PRIVILEGES no cambia los permisos en ningún objeto existente, en su caso el esquema.

    Debe otorgar el CREATE privilegio en el esquema:

    GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
    
  2. ALTER DEFAULT PRIVILEGES La declaración que ejecutó solo afectará los permisos en las tablas creadas por el usuario postgres en esquema tn_schema , pero parece que quieres tn_beta_migrator para crear tablas.

    No necesita ALTER DEFAULT PRIVILEGES en absoluto, ya que el usuario que crea la tabla se convierte en el propietario de la tabla y tiene todos los privilegios sobre la tabla de forma predeterminada.

  3. Puede ver los privilegios predeterminados con \ddp en psql .

  4. Los esquemas son parte de una base de datos, por lo que debe conectarse a la base de datos para ver sus esquemas.

Si desea que las tablas creadas por tn_beta_migrator obtener determinados permisos de forma predeterminada, debe definir los privilegios predeterminados para ese usuario (y no para postgres , como lo hiciste tú):

ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;