Nur Tabellen anzeigen/auflisten für die Leserechte bestehen

Hallo Wissende,
ich habe einen Nutzerangelegt, welcher nur bestimmte Tabellen(-Inhalte) lesen bzw. bearbeiten darf. Das funktioniert.

Wenn aber der Nutzer sich jetzt von Extern verbindet (z.B. Access/Excel …) soll er nur die Tabellen angezeigt bzw. aufgelistet bekommen für welche er Rechte hat.
Das ähnliche Problem besteht mit dem “pgAdmin”. Der Nutzer der eigentlich nur eine einige Tabelle sehen/bearbeiten darf, kann sich darüber anmelden und alle Datenbanken/Tabellen des Servers sehen. Das kann doch so nicht “gewollt” sein :frowning:.

Lässt sich das irgendwie einstellen?

Gruß Steffen

Ps.: Ich gehe mal davon aus, dass es in Login-Rolle darf nur bestimmte Tabellen/Views sehen um das Daten ansehen (SELECT) und nicht um das Tabellen auflisten ging!?

nun, die Katalogtabellen sind halt für alle lesbar, daher kann auch jeder sehen, daß es eine Tabelle foo gibt. Tools wie PgAdmin sind auch eher nicht für die tägliche Arbeit eines Enduser ausgelegt - diese sollten ihre Arbeit halt über eine passende Software machen.

Hallo,
Dank für die schnelle Antwort.
Aber das kann/darf doch nicht sein, dass der Schülerpraktikat, der alle Stühle der Abteilung “einklimpert”, über pgAdmin/Access/Excel/… (und seinen Nutzername/Passwort) die gesamte Datenbankenstruktur des Konzerns sehen kann :frowning:.

Ps:
Mir geht es allerdings primär um die Übersicht. Das heißt, ein Nutzer/Programmierer der sich mit der DB verbindet, soll dort statt 3000 Objekten nur die 2 Tabellen/Sichten sehen, auf die er Zugriff hat.

Gruß Steffen

PGAdmin und andere Tools sind Tools für den Admin, nicht für den Anwender. Wenn ein Schülerpraktikant nur die Stühle der Kantine erfassen darf, dann gebe ihm eine Oberfläche, mit der dies tun kann, und kein Admin-Tool.

Hallo,
nun ja geben und nehmen sind zwei verschiedene Sachen. Auch kann man den Leuten schlecht Excel und Access wegnehmen.

Aber egal, wenn’s nicht geht ist es halt so.

Gruß Steffen

stell 'nen webserver hin, regle, daß man nur von diesem auszugreifen darf (pg_hba), schieße via php ein formular zusammen, fertig.

Es gibt schon einige Hacks in der Richtung (z.B. das Entziehen von SELECT Rechten auf die Systemkataloge). Das bewirkt aber dann, dass Tools wie pgAdmin nicht mehr richtig funktionieren, da die ja davon ausgehen, dass jeder die Systemkataloge auslesen darf. Theoretisch könnte ich mir vorstellen, dass man das über “Row Level Security” auch kontrollieren könnte. Aber ich weiß nicht, ob man solche Regeln auf Systemtabellen und -views überhaupt definieren kann.

Ich sehe da ehrlich gesagt auch kein Problem (außer einem kosmetischen). Zugreifen darf der Benutzer ja nicht, und die Struktur und Namen der Tabellen zu kennen ist jetzt kein echtes Sicherheitsrisiko wenn der Zugriff auf diese Tabelle richtig kontrolliert wird.

Ich denke so etwas ist eher “Aufgabe” der Tools diese Tabellen auszufiltern.

Oracle verhält sich da übrigens nicht anders. Da bietet allerdings der JDBC Treiber eine entsprechende Option an (was ja - aus Sicht des Servers - auch “nur” ein Client Programm ist).