Michael Schröpl: Sichten

Beitrag lesen

Hi Lude,

Meine Rechnung, dass mehr Objekte immer auch mehr Komplexitaet bedeuten, scheint widerlegt?

Für wen? - Darüberhinaus hat das Informatiker-Prinzip "divide et impera" auch hier Gültigkeit.

Das wuerde gehen. Sicherheit ueber Sichten zu implementieren kommt in Betracht, hat aber sicherlich seine Nachteile, weil Sicherheit, wie Du ausfuehrst, nicht alleine ueber Sichten implementiert werden kann.

Die Sicherheit selbst wird natürlich über GRANTs implementiert.
Was ich im Moment nicht weiß, ist, ob man einer View (bzw. der Userid, welche diese View definiert hat) andere (d. h. mehr) Zugriffsrechte geben kann als dem "Endbenutzer", so daß dieser bei Verwendung der View auf eine Tabelle zugreifen könnte, die er direkt gar nicht ansprechen darf ...

Bei dieser Gelegenheit wuerde ich gerne Eure Mitteilungsbereitschaft ausnutzen und nach Triggern fragen, die ja beispielsweise Datenhistorisierung unterstuetzen. - Darf ich auf Eure Meinung zu diesen Objekten hoffen?

Trigger (vor allem in Kombination mit stored procedures) erlauben Dir, Aktionen durchzuführen, die z. B. für die logische Konsistenz des Datenmodells erforderlich sind, aber nicht alleine durch "statische" SQL-Mittel (UNIQUE, constraints etc.) modellierbar sind. Auch Einsatzfälle wie die zuverlässige Protokollierung bestimmter Vorgänge ließe sich so weit innen in bequemer Weise implementieren.
Die Verlagerung der entsprechenden Mechanismen in Anwendungsprogramme würde a) ggf. zu Code-Duplizierung führen und b) entsprechende Mechanismen leicht umgehbar machen (insbesondere dann, wenn man ab und zu doch mal über die Kommandozeile geht ...). Viele Datenbank-Anwendungen nutzen keinen Authentifizierungsmechanismus, der über das reine Login hinausgeht; tut man dies aber doch (GRANTs, Rollen-Konzept), dann sollte man Trigger als Mechanismus "im Hinterkopf haben".

Trigger sind letzten Endes also "Eventhandler" innerhalb der Datenbank, oder auch User Exits - es gibt durchaus Einsatzfälle, in denen sie die beste, wenn nicht einzige Lösung eines bestimmten Problems darstellen können.

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
(sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
 => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.