PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-Berechtigungsgewährung nicht sichtbar

Eine Liste der Dinge, die Sie missverstanden haben:

  1. ALTER DEFAULT PRIVILEGES ändert nicht die Berechtigungen für ein vorhandenes Objekt, in Ihrem Fall das Schema.

    Sie müssen erteilen der CREATE Privileg auf dem Schema:

    GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
    
  2. Die ALTER DEFAULT PRIVILEGES -Anweisung, die Sie ausgeführt haben, wirkt sich nur auf die Berechtigungen für Tabellen aus, die vom Benutzer postgres erstellt wurden im Schema tn_schema , aber es scheint, dass Sie tn_beta_migrator wollen um Tabellen zu erstellen.

    ALTER DEFAULT PRIVILEGES ist nicht erforderlich überhaupt nicht, da der Benutzer, der die Tabelle erstellt, zum Eigentümer der Tabelle wird und standardmäßig alle Berechtigungen für die Tabelle hat.

  3. Sie können Standardrechte mit \ddp anzeigen in psql .

  4. Schemas sind Teil einer Datenbank, daher müssen Sie sich mit der Datenbank verbinden, um ihre Schemas anzuzeigen.

Wenn Sie möchten, dass die Tabellen von tn_beta_migrator erstellt werden bestimmte Berechtigungen standardmäßig erhalten möchten, müssen Sie Standardberechtigungen für diesen Benutzer definieren (und nicht für postgres , wie du es getan hast):

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