Hi, ich habe folgendes Problem:
Ich habe auf meinem Server verschiedene Benutzer angelegt, die alle eigene Datenbanken anlegen können sollen. Ziel ist, dass jeder Benutzer eine beliebige Anzahl an Datenbanken hat, die aber nur er betrachten kann. Datenbanken von anderen Benutzern soll er nicht sehen können.
Ich habe den Benutzern alle Rechte für Datenbankobjekte entzogen (REVOKE ALL PRIVILEGES), sprich: Er kann nur auf seinen Datenbanken SELECT, INSERT usw. durchführen. Klappt auch. Nur leider kann er immer noch alle anderen vorhandenen Datenbanken betrachten, und auch deren Struktur sehen. Inhalte von Tabellen natürlich nicht.
Wie kommt das und vor allem, wie kann ich das verhindern?
Kennt sich da jemand aus? Ich will, dass ein user nur auf eine Datenbank connecten darf, die er besitzt. Ausnahmen kann ich ja noch deklarieren. Ich bin nur etwas hilflos, was die Struktur angeht. Die pgSQL-Manualseiten zu dem Thema (http://www.postgresql.org/docs/8.1/interactive/client-authentication.html) helfen mir da nicht wirklich weiter.
Gut, ich kann jetzt Usern den Zugriff auf Datenbanken verweigern. Benutze ich aber pgPhpAdmin, so kann ich immer noch alle Datenbanken sehen - wenn auch nicht auf sie zugreifen. Ich finde das sehr unschön, wie kann ich das vermeiden?
Das ist ja doof. Ich muss mich schon daran gewöhnen, dass ich die Datenbankrechte in eine Datei schreiben muss - das verstehe ich nicht, da eine Datenbank doch so viel einfacher ist. Aber dass auch noch jeder x-beliebige alle Datenbanken sehen kann, die es auf dem System gibt… das macht in meinen Augen keinen Sinn. Haben sich da schonmal Leute Gedanken zu gemacht? Gibt es da einen “Hack”?