CenText hat geschrieben:Hallo Leute,
und zwar beschäftigt mich das Thema, meine Datenbank vor einer Kopier zu schützen.
Es gibt bei einige User, die Lese zugriff auf meine Datenbank haben. Nur will ich nicht, dass sie diese kopieren können, sondern nur ein paar Datenauslesen können.
Vermutlich willst Du doch eher, daß die User nur die Daten zu sehen bekommen und auch verändern können, die ihnen gehören. Ob der User dann mit einem Schlag alle 100 Datensätze auslesen kann oder dazu 50 selects mit je 2 Sätzen macht ist doch in Zeiten, wo man sowas programmieren kann, völlig egal.
Die User haben eigene Logins? Du kannst mit den Usern und auch Gruppen hantieren. Z.B. pro Tablerecord ein extra Feld mit dem Usernamen. Dann den Zugriff auf die Tabelle selbst den Usern verbieten und statt dessen ein VIEW erzeugen, der nur das anzeigt, wo oben genannte Extra-Spalte gleich dem CURRENT_USER ist.
Ich hab mich gerade mal ein wenig mit Funktionen/Trigger beschäftigt, nur sehe ich dort keine Möglichkeit - evt. kann mich hier jemand korrigieren??
Nicht wirklich falsch die Idee. Mit den Trigger beim INSERT die extra Spalte mit dem Usernamen befüllen. Eine Funktion, security auf definer stellen, die Daten einfügen darf. Details dazu hier:
PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: CREATE FUNCTIONEine Möglichkeit sehe ich darin, dass ich die Anfrage modifiziere, indem ich einem SELECT Anfrage ein Limit setze.
Aus .. wird
SELECT * FROM tb => SELECT * FROM tb LIMIT 0,100
Ich muß Dir jetzt nicht erklären, daß das Bullshit ist, oder?
Andreas
Welcome Tamara!