PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PostgreSQL - UserGroup ausgeben



Maja
06-05-2005, 15:10
Hallo,
ich bin Newbie und vielleicht löst sich mein Problem schnell in Luft auf. Ich arbeite mit postgreSQL 8.0 (Windows-Version) auf Win2000.
Das Problem: ich möchte die User-Group ermitteln unter der der eingeloggte User arbeitet. Ich will die Ausgabe zum steuern der Benutzungsoberfläche nutzen.
Bisher habe ich die Funktion current_user mit return-Wert name und die Tabelle pg_group im pg_catalog entdeckt. Nur in der pg_group werden die user_id's verwaltet. Wie bekomme ich jetzt die user_oid?

Ich bin Euch da echt dankbar, wenn ihr mir eine Idee mitgeben könnt.

Ciao, Maja

Christoph
07-05-2005, 08:02
Beschreibung der Systemtabellen findest Du hier: http://www.postgresql.org/docs/8.0/static/catalogs.html

Da ein Benutzer in vielen Gruppen sein kann, ist die Spalte mit den Usern pro Gruppe ein Array, das ist also nicht relational sondern -Shcok- Horror-, objektorientiert abgelegt (=> die Sache scheint kompliziert zu werden). Der Schlüssel verweist auf pg_shadow bzw. pg_user. Wie man mit arrays umgeht sollte in der PostgreSQL-Doku stehen, ob man da aber so einfach drauf abfragen kann (z.B. WHERE userid IN grolist) weiß ich nicht, aber irgendwie wird das schon gehen (nur eben kompliziert, was ja das Ziel objektorientierter Datenbanken ist ;-)

elrond
10-05-2005, 09:21
Auf diese Art und weise die Benutzerverwaltung zu machen bedeutet sich sehr auf die db festzulegen. Ich bin pg-Fan, aber das würde ich nicht machen...

Maja
11-05-2005, 13:04
Auf diese Art und weise die Benutzerverwaltung zu machen bedeutet sich sehr auf die db festzulegen. Ich bin pg-Fan, aber das würde ich nicht machen...

Okay, ich erhöre den Rat und werde meine bisherige Benutzerverwaltung (mittels Account-Tabelle) bestehen lassen.

Danke
Maja