Hallo,
wie kann ich von einer MS-Access anwendung aus die auf eine PG DB zugreift den PG Datenbank User abfragen?
Unter PG geht das ja mit current_user und unter Access mit currenuser().
currentuser() liefert aber nur den Access User.
Wie kann ich den aktuellen User der PG DB abbfragen?
unter Access lassen sich PassThrough Abfragen erstellen. Da kannst du den current_user in PG sql Syntax abfragen.
Zumindest unter Access 2003 funktionierts so, WENN du eine ODBC Verbindung zu postgres eingerichtet hast:
neue Abfrage
Tabellenfenster zuklicken
rechtsklick in Abfragefenster
Sql spzifisch - PassThrough auswählen
im Sqlfenster select current_user reinschreiben
in den Abfrageeigenschaften unter ODBC Verbindung eingeben
ODBC;DATABASE=name_der_pg_datenbank;DSN=name_laut_odbc;PWD=xxxxxxx;PORT=5432;SERVER=localhost;UID=A+D;READONLY=0
PORT und SERVER evtl. noch anpassen.
speichern und testen
Diese Abfragen lassensich auch dynamisch machen, aber wenn du den Weg kennst findest du das auch.
Hallo Uli,
danke für deine Antwort. Das funktioniert alles so wie du es beschrieben hast.
Mir ist aber derzeit nicht klar, wie ich das Abfrageergebnis in Access als Variablenwert speichern und und z.B. in einem View als Selektionskriterium weiterverwenden kann. Aber das gehört wohl besser in ein Accessforum.
war in Urlaub, vermutlich hast du die Lösung gefunden. Wenn nicht müsste das so gehen.
Angenommen deine Abfrage zum postgres User heisst vwCurrentUser dann kannst du das Ergebnis in anderen Abfragen so verwenden:
select a, b, c
from deine_tabelle
where dein_user = (select current_user from vwCurrentUser)