1 Datenbank, mehrere Benutzer

Hallo,

ich bin gerade dabei, eine Datenbank zu erstellen/entwerfen (PostgreSQL 8.3 auf Debian 5.0), auf die mit OpenOffice Base zugegriffen werden soll. Meine Frage bezieht sich wahrscheinlich sowohl auf die Benutzerverwaltung als auch auf die Konfiguration. Und zwar soll die Datenbank auf einem lokalen Server liegen, und die Benutzer greifen von verschiedenen PCs im lokalen Netzwerk darauf zu.

Die Benutzergruppe kann sich im Laufe der Zeit ändern (neue kommen hinzu, andere verlassen die Gruppe).

Ich würde gerne die Benutzer in einer Tabelle (Nachname, Vorname, Kürzel, Login-Name, Admin/User) in der Datenbank speichern und die Verwaltung auch über OpenOffice Base ermöglichen. Der Login-Name soll der Benutzername sein, mit dem sich die Benutzer am System (Linux) anmelden und mit dem sie dann für die Datenbankanwendung identifiziert und berechtigt sind.

Wie richte ich das nun in der pg_hba.conf-Datei ein? Soll ich alle auf die Datenbank zugreifen lassen und die Berechtigung dann über OpenOffice Base abfragen und zulassen/verweigern? Muss ich jeden Benutzer bei PostgreSQL als DB-User anlegen? Oder reicht ein DB-User, mit dessem Zugang alle Benutzer auf die Datenbank zugreifen? Muss ich eine Benutzergruppe einrichten?

Ich bin leider noch etwas neu in PostgreSQL. Ich hab die Anleitungen für die Konfiguration und die Benutzer-/Rechte-Verwaltung (pg_hba.conf) schon mehrmals durchgelesen, weiss jetzt aber gerade nicht so richtig weiter. Ich brauche da wohl erst mal eine grundsätzliche Rangehensweise. Vielleicht könnt ihr mir ja einen Tipp geben.

Gruss
Bert

Das geht so nicht, zumindest nicht so einfach. Mit LDAP wäre dies aber wohl umsetzbar. Ansonsten gilt: Unix-User != DB-User.


Wie richte ich das nun in der pg_hba.conf-Datei ein? Soll ich alle auf die Datenbank zugreifen lassen und die Berechtigung dann über OpenOffice Base abfragen und zulassen/verweigern? Muss ich jeden Benutzer bei PostgreSQL als DB-User anlegen?

Du könntest die User in Gruppen stecken und in der pg_hba.conf diese Gruppe mit einem + vorne angeben. Den Gruppen gibst Du dann passende Rechte.

Oder reicht ein DB-User, mit dessem Zugang alle Benutzer auf die Datenbank zugreifen?

Geht auch, dann aber hast Du natürlich kein Management der User-Rechte auf DB-Seite. Damit gehen dann auch so Dinge wie “create table … username text default current_user” und so nicht, da alles eine Soße, ähm, User ist.


Andreas

Hallo,
das ist mir eigentlich soweit klar. Ich wollte das auch nicht automatisch machen, sondern die Anwendung soll den Linux-User (über seinen Login-Namen) erkennen und schauen, ob der in der DB-Tabelle eingetragen ist und für die Anwendung überhaupt berechtigt ist. Somit will ich eine zusätzliche Anmeldung an der Anwendung umgehen/ersparen.

Du könntest die User in Gruppen stecken und in der pg_hba.conf diese Gruppe mit einem + vorne angeben. Den Gruppen gibst Du dann passende Rechte.

Dann müsste ich aber die einzelnen User ebenfalls in PostgreSQL anlegen. Dagegen spricht ja, dass sich die Benutzer öfters ändern können und dies über die Anwendung verwaltet werden sollte.

Geht auch, dann aber hast Du natürlich kein Management der User-Rechte auf DB-Seite. Damit gehen dann auch so Dinge wie “create table … username text default current_user” und so nicht, da alles eine Soße, ähm, User ist.

Die Struktur der Datenbank sollen die Benutzer eh nicht ändern können, nur auslesen, neu anlegen, ändern oder löschen von Datensätzen. Vielleicht brauch ich dann das Management der User-Rechte auf DB-Seite überhaupt nicht. Vielleicht nur zwei User-Rechte: User (lesen, schreiben) und Admin (lesen, schreiben, löschen)?

Geht das denn grundsätzlich, dass ich nur 1 oder 2 DB-Benutzer anlegen (mit den jeweiligen Rechten) und mehrere Anwendungsbenutzer dann mit diesen DB-Zugängen dann (auch gleichzeitig) auf die Datenbank zugreifen können?

Gruss
Bert

Ja. Warum auch nicht?


Andreas

War mir halt nicht ganz sicher, ob das so korrekt ist.
Danke für die Hilfe.

Gruss
Bert