Hallo Wissende,
ich habe ein exotisches Problem.
Ich habe eine externe Datenbankanwendung, in welcher ich keine (zusätzlichen) Nutzer definieren kann. Die Administration der Tabellen selbst erfolgt innerhalb der Anwendung.
Nun habe ich eine/mehrere sensible Tabellen für welche ich intern Lese- und Schreibrechte brauche. Extern (ein Rechner in der DMZ) darf diese Tabelle auf keinen Fall sichtbar sein.
Ich möchte verhindern, dass selbst bei Fehlern in der internen Administration diese Tabellen nach außen sichtbar wird.
Die “pg_hba.conf” wäre dafür ja geeignet, die kann aber nur komplette Datenbanken.
Gibt es für so etwas eventuell doch einen Ansatz?
Gruß Steffen
dann erstelle eine separate Datenbank, un ddarin diese Tabelle.
Oder, grobe Idee: einen User, der sich nur via local anmelden kann (via pg_hba) und nur dieser darf den Inhalt der Tabelle sehen.
Hallo,
vielen Dank für die schnelle Antwort. Aber wie beschrieben ist das eine Fremdanwendung, in welcher ich keine zusätzlichen Nutzer erstellen kann.
Die Anwendung “kontrolliert” die gesamte Datenbankarbeit. Ich habe also nur die Möglichkeit dem einen Datenbanknutzer auf dem einen Rechner die Rechte für die Tabelle(n) zu entziehen. Diese Möglichkeit ist leider (scheinbar) nicht vorgesehen.
Also bleibt mir nur der Software zu vertrauen und in meiner (internen) Administration keine Fehler zu machen.
Gruß Steffen
ich hätte noch Ideen, z.B. via inet_client_addr() die Adresse des Clients rauszubekommen. Dazu eine Funktion, über die du die Tabelle abfragen kannst (also z.B. get_secure_table(), die security definer ist und die Tabelle liefert. Diese prüft erst einmal via inet_client_addr(), aus welchem Netz der Client kommt, und reagiert entsprechend. Dazu muß aber auch die Anwendung angepaßt werden.