Verwenden von psql
Metabefehlen:
https://www.postgresql.org/docs/current/static/app-psql.html
Wenn Sie mit Strg + F über die Seite gehen, erhalten Sie:
\ddp [ pattern ]
Listet die Standardeinstellungen für Zugriffsrechte auf.
\dp [ pattern ]
Listet Tabellen, Ansichten und Sequenzen mit den zugehörigen Zugriffsrechten auf.
\l[+] [ pattern ]
Listen Sie die Datenbanken auf dem Server auf und zeigen Sie .... Zugriffsrechte an.
Auch oben erwähnt, aber nicht mit dem Wort "Privilegien" auf der Handbuchseite gefunden:
\du+
Für Rollen mit Login und \dg+
für Rollen ohne - wird ein Feld angezeigt, "Member of"
in dem Sie Rollen finden, die Rollen zugewiesen wurden.
Ich überspringe hier absichtlich Funktionen und Sprachrechte, die im psql
Handbuch als kaum manipuliert befunden werden (und wenn Sie diese Rechte verwenden, werden Sie nicht hierher kommen, um Ratschläge zu erhalten). Gleiches gilt für benutzerdefinierte Typen, Domänen usw. - Wenn Sie "+" nach dem Meta-Befehl verwenden, werden Ihnen ggf. Berechtigungen angezeigt.
Ein etwas extremer Weg, um die Privilegien zu überprüfen, ist das Löschen des Benutzers in einer Transaktion, zB:
s=# begin; drop user x;
BEGIN
Time: 0.124 ms
ERROR: role "x" cannot be dropped because some objects depend on it
DETAIL: privileges for type "SO dT"
privileges for sequence so
privileges for schema bin
privileges for table xx
privileges for table "csTest"
privileges for table tmp_x
privileges for table s1
privileges for table test
Time: 0.211 ms
s=# rollback;
ROLLBACK
Time: 0.150 ms
Wenn die Liste länger als N ist (mindestens in 9.3), wird die Warnung mit der Liste der Berechtigungen ausgeblendet, Sie finden sie jedoch weiterhin in den Protokollen ...
\z myTable
ist perfekt, um sicherzustellen, dass Sie erfolgreich Zugriff auf jemanden gewährt haben und zu vermeiden, wie ein Idiot