Privilegien von Benutzern prüfen

Hallo Zusammen!

ich würde gerne prüfen welche Rechte ein Benutzer oder eine Benutzergruppe an bestimmten Tabellen hat. Also zum Beispiel ob der Benutzer XY Datensätze zu der Tabelle ABC hinzufügen darf oder nicht.

Kann mir jemand einen Tip geben wir man das lösen könnte?

Schau dir mal in psql den Befehl

\z <Tabelle>

an.

Hallo ads!

Danke für den Tipp!
Ich hatte leider noch nicht die Möglichkeit zu testen ob das auch aus einem C Programm heraus funktioniert.

Kann man das auch über eine Anfrage mit SQL machen?

\z funktioniert ganz sicher nicht von einem C Programm.
Aber Du kannst psql mit der -E Option starten, dann wird das entsprechende SQL dafür angezeigt.

Danke castorp!

Fantastisch!

Dabei ist jedoch Vorsicht geboten: die Anfragen sind abhängig von der PostgreSQL Version. Die darunterliegenden Systemtabellen können sich von Version (8.3 auf 8.4 als Beispiel) zu Version ändern.

Vielleicht kommst du auch über:

information_schema.column_privileges
information_schema.table_privileges

weiter. Dort sind diese Informationen unabhängig von der PostgreSQL Version abgebildet.

Vielen Dank!

Dann kann ich ja jetzt los-basteln!