PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Concessione del privilegio PostgreSQL non visibile

Un elenco di cose che hai frainteso:

  1. ALTER DEFAULT PRIVILEGES non cambia i permessi su nessun oggetto esistente, nel tuo caso lo schema.

    Devi concedere il CREATE privilegio sullo schema:

    GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
    
  2. Il ALTER DEFAULT PRIVILEGES istruzione che hai eseguito influenzerà solo i permessi sulle tabelle create dall'utente postgres nello schema tn_schema , ma sembra che tu voglia tn_beta_migrator per creare tabelle.

    Non hai bisogno di ALTER DEFAULT PRIVILEGES affatto, poiché l'utente che crea la tabella diventa il proprietario della tabella e ha tutti i privilegi sulla tabella per impostazione predefinita.

  3. Puoi visualizzare i privilegi predefiniti con \ddp in psql .

  4. Gli schemi fanno parte di un database, quindi devi connetterti al database per vederne gli schemi.

Se vuoi che le tabelle create da tn_beta_migrator ottenere determinate autorizzazioni per impostazione predefinita, è necessario definire i privilegi predefiniti per quell'utente (e non per postgres , come hai fatto tu):

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