PDA

View Full Version : Berechtigung Satzebene



Muchi
19-02-08, 10:21
Hallo *All,

gibt es eine Möglichkeit Berechtigungen auf Satzebene zu setzen?

Danke und Gruss

Michael

Fuerchau
19-02-08, 10:45
Nein, das ist Anwendungssache.

Die einzige Chance ist hier das Bilden von LF's/Views, die durch entsprechende Selektion die Daten vorauswählen und für die betroffenen Programme entsprechende OVR's generieren.

Muchi
19-02-08, 10:56
Das habe ich befürchtet...

Ich habe einen View angelegt und der funktioniert sehr gut, allerdings muss ich dann auch für alle bestehenden LF einen View erstellen, die auf die PF zugreifen. Oder gibt es dafür eine andere Möglichkeit?

Fuerchau
19-02-08, 11:35
Eine View geht nur auf die PF.
Wie greifst du denn zu ?

Mit den Views/LF's klappt es zwar ganz gut, ist aber in meinen Augen eher schlechtes Anwendungsdesign, ausser du lässt ODBC o.ä. Zugriffe zu.

Besser wäre da, das Auswahlfeld in die LF ganz vorne mit reinzunehmen und per SQL oder Native-IO zu berücksichtigen.

Ausserdem ist dann die Berechtigungssteuerung per Anwendung dynamischer.

GEGE
19-02-08, 14:22
Es gibt auch ein Produkt mit Namen 'VIEW' das diese Aufgabe ohne großen Programmieraufwand erledigt:

View
Hiermit können Sie bestimmten Benutzern den Zugriff auf besonders sensible Daten verweigern. Ohne Eingriff in die Anwendung und in die native Security der iSeries, werden Benutzern nicht zugängliche Daten maskiert angezeigt. Regeln bestimmen, ob sensible Feldinhalte nur angezeigt, oder auch verändert werden dürfen – Anwendungsübergreifend! View unterstützt logische und physische Dateien und eignet sich hervorragend für sicherheitsrelevante Bereiche wie in Banken, e-Business, Personalsoftware, etc.

Ich habe dieses Produkt schon bei einigen Banken in Luxemburg installiert - falls Fragen so nehmen Sie Kontakt über diesen Weg auf ......

Liebhoff
19-02-08, 14:45
Du warts jetzt aber nicht in Lichtenstein mit Deinem Tool und bist jetzt 5 Mille reicher ?

:cool:

Sorry aber dieser Beitrag erzwingt irgendwie diese Antwort ...

Muchi
20-02-08, 12:41
ODBC Verbindungen werden auch benötigt...

Soweit ich weiss kann ich keinen View mit join oder exists erstellen, der auch Updates oder Writes auf die DB machen kann. (unter V5R3M0). Oder gibt es vielleicht doch eine Möglichkeit.

Die Anwendung kann ich leider nicht ändern, da ich keinen Quellcode habe http://www.newsolutions.de/forum-systemi-as400-i5-iseries/images/smilies/frown.gif
:(


Eine View geht nur auf die PF.
Wie greifst du denn zu ?

Mit den Views/LF's klappt es zwar ganz gut, ist aber in meinen Augen eher schlechtes Anwendungsdesign, ausser du lässt ODBC o.ä. Zugriffe zu.

Besser wäre da, das Auswahlfeld in die LF ganz vorne mit reinzunehmen und per SQL oder Native-IO zu berücksichtigen.

Ausserdem ist dann die Berechtigungssteuerung per Anwendung dynamischer.

BenderD
20-02-08, 17:13
freilich, wie sieht denn die Anforderung aus?

D*B


Hallo *All,

gibt es eine Möglichkeit Berechtigungen auf Satzebene zu setzen?

Danke und Gruss

Michael

Muchi
21-02-08, 09:00
Der SQL sieht wie folgt aus:

CREATE view lib/view as
SELECT * FROM datei
where exists (select * from datei2 where satz = 'XXX' and
(substr(info,5,3) = substr(user,3,3) or
substr(info,4,4) = substr(user,3,4))
and clraci = substr(info,8,7))


freilich, wie sieht denn die Anforderung aus?

D*B

BenderD
21-02-08, 09:25
dann hast du das Prinzip doch schon.
Den where exists den könnte man noch in in einen join auflösen und die substr Arie kriegt man noch mit Datenbankdesign weg. "unechte joins" (= es werden nur Felder aus einer Datei ausgewählt) kann man unter gewissen Einschränkungen auch fortschreiben (dafür kämen auch noch Trigger in Frage. Natürlich muss man das in einem View Layer durchgängig machen (wenn man sich Ver und Tipperei sparen will, kann man sowas auch generieren) letztlich ist das immer die Frage, wieviel Aufwand man da rein stecken will/kann.

D*B


Der SQL sieht wie folgt aus:

CREATE view lib/view as
SELECT * FROM datei
where exists (select * from datei2 where satz = 'XXX' and
(substr(info,5,3) = substr(user,3,3) or
substr(info,4,4) = substr(user,3,4))
and clraci = substr(info,8,7))