Also es können alle deine Forderungen erfüllt werden bis auf folgenden Punkt: "Alle Benutzer sollen nur ihre DB sehen".
Grundsätzlich können alle User alle Datenbanken sehen, allerdings kann man mit passenden Zugriffsrechten verhindern, das jemand auf andere Datenbanken zugreifen kann. Sprich, die User wissen, dass die Datenbank existiert, mehr ist aber nicht möglich.
Alles andere ist mit einer passenden Config in pg_hba.conf lösbar.
Zu Frage 2: Funktionen können gefährlich sein, wenn du sogenannte "untrusted" Sprachen verwendest. Solange nur "trusted" Languages zugelassen sind, kann man damit keinen Unsinn ausserhalb der DB anstellen.
Zu Frage 3: die pg_hba.conf sollte erst gar keinen Zugriff auf 'postgres' und 'template1' für andere User zulassen. Das lässt sich konfigurieren.
Zu Frage 4: PUBLIC ist eine Pseudogruppe, wenn du Rechte an PUBLIC vergibst, darf grundsätzlich jeder darauf zugreifen. man erspart sich auf diesem Wege den Umweg, das man Zugriffsrechte an jeden User vergeben muss, wenn alle auf ein Objekt zugreifen sollen.
So, wohin darf ich jetzt die Rechnung schicken? ;-)



LinkBack URL
About LinkBacks
Zitieren



Lesezeichen