Privilegien für public werden nicht angezeigt

Hier geht es um die Verwaltung von Benutzern und Rechten.
Antworten
pgnoob55
Neuer Benutzer
Beiträge: 1
Registriert: Di 26. Aug 2014, 12:27

Privilegien für public werden nicht angezeigt

Beitrag von pgnoob55 » Di 26. Aug 2014, 12:40

Hi!

Ich habe gerade postgree installiert und für jede Applikation eine eigene DB angelegt. Dann habe ich festgestellt, dass alle Benutzer auf alle DBs zugreifen können. Ich habe dann in folgendem Artikel
http://stackoverflow.com/questions/6884 ... -databases
gelesen, dass std.mäßig gewisse Rechte an public zugewiesen werden. Ich sehe diese Rechte aber nirgends in pgAdmin. Der Beitragsteller hat das Problem gelöst, jedoch die von ihm angegebenen Menüpunkte gibt es bei mir im pgAdmin nicht und in den Reitern für die Privilegien der Datenbanken stehen nirgendwo irgendwelche Rechte für public. Lediglich im Schema selbst gibt es Rechte für public. Ich möchte aber auf DB-Ebene trennen und nicht auf Schema-Ebene. Nun habe ich das Recht einfach per SQL-Query entzogen, wie ebenfalls im Artikel erwähnt und jetzt haben die User tatsächlich keine Rechte mehr auf alle DBs sondern nur noch auf die ihnen zugeordneten. Aber jetzt schreit der pgAdmin jedes Mal, wenn ich mich mit einem User verbinde, dass er keinen Zugriff auf die anderen DBs hat. Nun meine zwei Fragen:

Wieso sah ich im pgAdmin nicht, dass der an public gewisse Rechte für eine DB gegeben waren? Das müsste doch unter Rechtsklick auf die DB / Menüpunkt Properties / Reiter Privileges oder Default Privileges aufscheinen, oder?
Warum meldet mir pgAdmin immer einen Fehler bzgl. der anderen DBs, bzw. warum überhaupt versucht er irgendwas mit den anderen DBs. Der User sollte doch gar nicht wissen, dass es diese DBs überhaupt gibt?

Vielen Dank für Hinweise.

lg,
pgnoob55

akretschmer
Erfahrener Benutzer
Beiträge: 7430
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Privilegien für public werden nicht angezeigt

Beitrag von akretschmer » Di 26. Aug 2014, 12:54

pgnoob55 hat geschrieben:Hi!

Ich habe gerade postgree installiert und für jede Applikation eine eigene DB angelegt. Dann habe ich festgestellt, dass alle Benutzer auf alle DBs zugreifen können.
pgnoob55


Vergiss PGAdmin. Ist nur ein Client.

Das Problem ist bekannt und durch meinen geschätzten Kollegen mal hier dokumentiert worden: http://wiki.postgresql.org/wiki/Shared_Database_Hosting

Hakinen
Neuer Benutzer
Beiträge: 12
Registriert: Do 17. Jul 2014, 14:36

Re: Privilegien für public werden nicht angezeigt

Beitrag von Hakinen » Mi 2. Mär 2016, 14:08

sagt mal - ist der Wiki-Artikel noch up to date?
(Erstellt 2008 - letzte Änderung 2013)

Habe nämlich aktuell genau diese Problematik - will mehrere Datenbanken auf einem Cluster betreiben ohne dass sich diese gegenseitig in die Karten schauen können.

(Version 9.5 - Windows Plattform)

akretschmer
Erfahrener Benutzer
Beiträge: 7430
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Privilegien für public werden nicht angezeigt

Beitrag von akretschmer » Mi 2. Mär 2016, 15:12

Laut Radio Erewan ja. Mittlerweise kann man aber mit RLS möglicherweise das geschickter umsetzen.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Hakinen
Neuer Benutzer
Beiträge: 12
Registriert: Do 17. Jul 2014, 14:36

Re: Privilegien für public werden nicht angezeigt

Beitrag von Hakinen » Do 3. Mär 2016, 09:29

ROW-LEVEL SECURITY POLICIES (RLS)?

Scheint mir noch zu wenig erforscht - schränkt auf Tabellenebene die Zugriffsrechte ein, wenn ich es richtig verstanden habe. Aber finde in Verbindung mit Postgres-Zugriffsproblematik keine ansprechenden Erläuterungen/Tutorials/Beispielkonfigurationen

Weiß auch nicht, ob es praxiskompatibel ist, da ja scheinbar nach dem Anlegen einer Tabelle eine Policy erstellt werden muss - das kann ich meine Benutzern nicht beibringen

DaniloE
Benutzer
Beiträge: 33
Registriert: Fr 4. Mär 2016, 12:39

Re: Privilegien für public werden nicht angezeigt

Beitrag von DaniloE » Fr 4. Mär 2016, 13:55

Also RLS ist toll, wenn man selbst alles in der Hand hat (Datenbanken, wie Tabellen) und auch wirklich nur auf Tabellenebene arbeiten will,
Aber wenns nur darum geht, dass sich die DBs nicht gegenseitig sehen sollen, ist das eher der falsche Ansatz, bzw keine Lösung für das Problem. Ist ja auch ein ganz anderer Scope, so wäre es ziemlich umständlich auf Tabellen- bzw. Zeilenebene festzulegen, was Nutzer global sehen dürfen und was nicht. Ist bisschen als würde ich in einem Bücherregal die Seiten für einzelne Benutzer streichen, nur weil Sie das ganze Buch nicht lesen dürfen, anstatt einfach das Buch im ganzen zu verlegen ;)

Ein sinnvoller Einsatz wäre vielleicht wenn man eine Tabelle mit Kurznachrichten hat, wobei der Nutzer nur seine eigenen lesen können darf.
Oder Eine Passworttabelle, wo der Nutzer nur sein eigenes ändern darf.
Zuletzt geändert von DaniloE am Fr 4. Mär 2016, 14:21, insgesamt 1-mal geändert.

akretschmer
Erfahrener Benutzer
Beiträge: 7430
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Privilegien für public werden nicht angezeigt

Beitrag von akretschmer » Fr 4. Mär 2016, 14:13

RLS, nicht RWS. Und ich meinte damit eher, die Sichten auf die Systemtabellen zu beschränken, damit nicht User A metadaten von User B sieht. Aber das war auch nur eine eher unausgegorene Idee von mir ...

Danilo: geh mal ins Skype ;-)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

DaniloE
Benutzer
Beiträge: 33
Registriert: Fr 4. Mär 2016, 12:39

Re: Privilegien für public werden nicht angezeigt

Beitrag von DaniloE » Fr 4. Mär 2016, 14:25

Ich glaube nicht, dass RLS für Systemtabellen funktioniert, bzw, so vorgesehen ist. Müsste man mal testen, was da passiert, aber besser auf ner kleinen Sonderinstallation, ich vermute mal, die DB kann man danach wegwerfen.

Antworten