Datenauswahl anahnd des aktuellen Users

Hallo,

ist es möglich, Daten innerhalb einer Tabelle anhand des aktuellen Users auszuwählen?
Z.B.
User 1 fügt Zeile1 und Zeile 2 in die Tabelle1 ein.
User 2 fügt Zeile3 und Zeile 4 in die Tabelle1 ein.
Jetzt soll User1 bei einem Select auch nur seine eigenen eingefügten Zeilen selektieren können und nicht die eines anderen Users.
Meine Frage ist, ob es halt möglich ist sowas durchzuführen ohne extra die Zuweisung der Zeilen zum User herzustellen. Also anhand der Zugriffsrechte des DBS selbst.
Danke schon mal im Voraus.

Gruß,
Markus

Irgendwo muß aber stehen, wer das eingefügt hat.

Also anhand der Zugriffsrechte des DBS selbst.
Danke schon mal im Voraus.

Gruß,
Markus

Ja.

Im groben so:

  • erstelle eine Tabelle mit einer Spalte username text default current_user
  • erstelle einen VIEW, welcher auf username = current_user prüft
  • select-Rechte auf die eigentliche Tabelle nur der Superuser, auf den view alle
  • eine function mit security definer, die die Daten in die Tabelle einfügen darf und vom Superuser erstellt wird

Irgendwo hab ich dazu mal eine nette Anleitung mit allem drum und dran gesehen, finde es aber jetzt nicht.

Falls Du mehr als das brauchst, google nach ‘veil postgresql’.

Andreas