Beim Administrieren der Benutzerrechte gibt es was zu beachten. Neben dem GRANT/REVOKE Befehl, welcher im SQL Standard definiert ist, kennt PostgreSQL noch einen weiteren – ALTER DEFAULT PRIVILEGES.
Normalerweise werden zum Beispiel mit GRANT SELECT ON ALL TABLES … die Lese-Rechte aller bestehenden und zukünftigen Tabellen gesetzt. PostgreSQL sieht es hier anders:
„ALTER DEFAULT PRIVILEGES allows you to set the privileges that will be applied to objects created in the future. (It does not affect privileges assigned to already-existing objects.) Currently, only the privileges for tables (including views), sequences, and functions can be altered.“ (PostgreSQL Dokumentation)
Beispiel:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT, INSERT ON TABLES TO myuser;
Demnach wirkt sich der GRANT Befehlt nur auf bestehende Objekte aus.