Anzeige aller Rollen/Datenbanken deaktivieren

Hallo zusammen,

ich arbeite mich zur Zeit in PostgreSQL ein und bekomme es auch soweit betriebsbereit.

Mir ist allerdings aufgefallen, dass bei PG-Admin oder phpPgAdmin bei jedem angemeldeten Benutzer,
immer alle Datenbanken und Rollen sichtbar sind (nur die Inhalte der Tabellen werden dann doch nicht angezeigt). :astonished:

Daher meine Frage ob das so normal ist oder ob ich das noch irgendwo abschalten kann?

Gruß,
Patrick

Ja, nein.

Andreas

Ist das kein Sicherheitsrisiko?

Wieso? Über die pg_hba.conf definierst du genau wer sich von wo wohin mit welchen Benutzer einloggen darf.

Bei phppgadmin gibt es aber eine Einstellung, mit der du sagen kannst, dass nur diese Datenbanken angezeigt werden, die dem jeweiligen Benutzer gehören. Musst du mal in die Config rein schauen…

cu tb

Nein.

Erstens, weil security by obscurity sowieso nicht funktioniert und weil PG Systemtabellen bzw. Katalogtabellen für solche Metadaten nutzt, die nun einmal sichtbar sind und sein müssen. Unter einem *NIX-System kann auch jeder Dödel die /etc/passwd sich anschauen, ohne daß das ein Problem an sich darstellt.

Andreas

Es stellt kein Sicherheitsrisiko dar. Wenn der Benutzer die anderen Datenbanken nicht kennt, kann er trotzdem mit Brute-Force herumprobieren.
Wenn ein Hacker den Accountnamen nicht kennt, probiert er trotzdem mit Brute-Force viele Möglichkeiten durch. Das Syslog File auf einem Unix-System kann dir da Geschichten erzählen …

Es ist allerdings etwas unschön, wenn auf einem System mit vielen Datenbanken auch immer alle aufgelistet werden. Aber wie gesagt, in einigen Programmen kann man das abstellen.

Kleine Info:
Ab v8.2.x gibt es die Möglichkeit für Datenbanken festzulegen wer das Recht zum “connect” hat und wer nicht.
Das kommt meinem ursprünglichen Wunsch schon sehr nahe.

Gruß,
Patrick

Ähm, das konnste man doch praktisch schon immer über die pg_hba.conf einstellen???

cu tb.

Jo, jetzt wo ich nochmal drüber nachgedacht habe ist mir das auch klar… :rolleyes:

Die connect-Rechte lassen sich über Tools (z.B. PG-Admin) bequemer einrichten als die pg_hba.conf editieren,
welche bei vielen Usern außerdem noch unübersichtlich wird.
Und damit die Änderungen wirksam werden ist bestimmt ein Neustart von Postgres nötig, oder?

Werde dann aber wohl doch mit der pg_hba.conf arbeiten.
Gibt es da nicht vllt. die Möglichkeit mit einem Eintrag zu sagen, dass sich eine Rolle nur mit der DB gleichen Namens verbinden kann?

Grüße

Du hast da offensichtlich einen Denkfehler: es kommt nicht darauf an, für einen Client das hinzubiegen, sondern generell. Es ist nicht zielführend, innerhalb eines speziellen Clients Rechte zu setzen, wenn alle anderen Clients, außer dem einen, weiterhin Rechte haben, die sie nicht haben sollen. Sicherheit funktioniert anders.

welche bei vielen Usern außerdem noch unübersichtlich wird.
Und damit die Änderungen wirksam werden ist bestimmt ein Neustart von Postgres nötig, oder?

Reload IIRC.

Werde dann aber wohl doch mit der pg_hba.conf arbeiten.
Gibt es da nicht vllt. die Möglichkeit mit einem Eintrag zu sagen, dass sich eine Rolle nur mit der DB gleichen Namens verbinden kann?

Grüße

Sollte IIRC via sameuser oder samerole gehen, untested.

Andreas