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

PostgreSQL entzieht Berechtigungen von pg_catalog-Tabellen

Lassen Sie mich Ihnen dabei helfen:

  • 1. :weil der pg_catalog gehört dem Superuser postgres , stellen Sie also sicher, dass Sie sich mit dieser Rolle beim Server anmelden:pg_catalog-Schemaberechtigung

  • 2. :Stellen Sie sicher, dass Sie sich rechts verbinden Datenbank, die GEWÄHREN/WIDERRUFEN werden muss Berechtigungen an. GRANT/REVOKE wirken sich nur auf den aktuellen Wert aus Datenbank, mit der Sie sich verbunden haben. Das bedeutet, nachdem Sie sich mit dem Superuser-Konto angemeldet haben, geben Sie Folgendes ein:\c [the db] Um sich mit dieser Datenbank zu verbinden, ändert sich die Shell zu:[the db]=>

  • 3. :Tabellen in pg_catalog Standardwerte gewährt SELECT an PUBLIC:Tabellen in pg_catalog. Sie müssen also REVOKE SELECT FROM PUBLIC ausführen und dann den entsprechenden Benutzern GRANT SELECT geben:

    REVOKE SELECT FÜR ALLE TABELLEN IN SCHEMA pg_catalog FROM PUBLIC;

    GRANT SELECT ON TABLE [Tabelle] TO [Benutzer];

    Für Listentabellen in einer Datenbank:pg_class und pg_namespace .

Und das ist alles :)