-
Trigger *AFTER *READ
Hallo und schönen Nachmittag,
ich hab grad ein wenig Zeit und wollte mal mit meiner alten Frage weitermachen... 
Da gibts ja den Trigger *AFTER *READ und genau da würd mich interessieren ob man über den Datenbankmäßig steuern kann wer welchen Datensatz anschaun darf.
Wenn das so ist dann würd mich brennend interessieren wie ich denn über den Trigger dem lesenden Programm/SQL/etc mitteilen kann ob der darf oder eben nicht ...
Ist nicht tragisch aber vieleicht hat sich schon jemand mal damit beschäftigt oder hat sogar ein paar codeschnippsel dafür ... 
Danke schonmal!
-
Ein After-Read-Trigger kann theoretisch den Inhalt des übergebenen Puffers mit Defaults überschreiben und somit bestimmte Feldinhalte verbergen.
Bedenke aber, dass dann beim Schreiben (Update) auch die veränderten Inhalte dann geschrieben würden, da das Programm ja nichts von der Veränderung weiß.
Du kannst damit ganz schnell ganz viele Daten zerhauen.
Wenn ein Datensatz gar nicht erst gelesen werden darf, so kannst du das nur mit einer ESC-Nachricht (Message-API) verhindern.
Das lesende Programm bekommt dann eine Ausnahme gemeldet, so dass dieses zum Programmabbruch führt (Ausnahme mit Monitor abfangen).
Auch dies führt hier nicht zum gewünschten Effekt.
Ein READE würde dann nämlich immer auf den selben Satz kommen.
Eine Dateninhaltsberechtigung kannst do so leider nicht lösen. Dies musst du per Design in der Anwendung klären.
Ein Read-Trigger macht nur dann Sinn, wenn bestimmte Feldinhalte übersetzt werden müssen, da sich z.B. Defaults o.ä. geändert haben.
Andererseits würde ich das dann eher mit einem SQL-Update einmalig durchführen.
Wofür man eine Read-Trigger wirklich braucht?
Ggf. um zu protokollieren, welche daten von wem gelesen wurden. Ansonsten wüsste ich nicht, wozu das wirklich gut ist.
Aber vielleicht weiß Birgitta da mehr .
-
... ein AFTER Trigger kann eine Aktion nicht verhindern, da hat die bereits stattgefunden!
Zugriff auf Satzebene kann man einfacher und besser im View Layer erledigen (special Register CURRENT_USER kann man in Views zum wegjoinen von Sätzen verwenden).
IMHO sind Read Trigger ein Feature ohne Nutzen!
D*B
-
Hallo und schönen guten Morgen,
vielen Dank für die aufschlussreichen Antworten... wenn das so ist dann verstehe ich wirklich nicht wofür der gut ist (außer halt protokollieren wer was gelesen hat) ... aber okay - man muss ja nicht alles verstehen 
Nochmals Danke für die Antworten!
-
Hallo,
ich glaub du kannst im Trigger auch z.B. einen SQL-Error zurückliefern. Dadurch kann das lesen abgebrochen werden.
Habs jedoch nie ausprobiert obs das wirklich so funktioniert, weil ich sowas zum Glück noch nie gebraucht habe 
lg Andreas
Similar Threads
-
By Jenne in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 19-01-07, 09:24
-
By bigmoon in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 14-09-06, 18:26
-
By antvik in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 02-08-06, 18:04
-
By peter.kinne in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 20-04-06, 10:21
-
By Frank Pusch in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 17-05-01, 09:34
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks