HotTip: Embedded SQL und Adopted Authority

11. November 2008 | Von | Kategorie: Tools, Hot-Tips

Artikel der NEWSolutions: Ich betreibe ein Programm, in dem dynamisches SQL – eingebettet in ILE RPG verwendet wird. Das Programm wurde mit der Option USRPRF(*OWNER) umgewandelt. Der Eigentümer des Programms hat vollen Zugriff auf die Dateien, die verändert werden sollen, andere Benutzer jedoch nicht. Wenn beispielsweise ich das Programm ausführe, erhalte ich die Fehlermeldungen SQL0551 und CPF4269, die letztlich aussagen, dass der Benutzer nicht zum Zugriff auf die Dateien berechtigt ist. Warum funktioniert die Übernahme der Berechtigungen hier nicht?

von Scott Klement

Frage:
Ich betreibe ein Programm, in dem dynamisches SQL – eingebettet in ILE RPG verwendet wird. Das Programm wurde mit der Option USRPRF(*OWNER) umgewandelt. Der Eigentümer des Programms hat vollen Zugriff auf die Dateien, die verändert werden sollen, andere Benutzer jedoch nicht. Wenn beispielsweise ich das Programm ausführe, erhalte ich die Fehlermeldungen SQL0551 und CPF4269, die letztlich aussagen, dass der Benutzer nicht zum Zugriff auf die Dateien berechtigt ist. Warum funktioniert die Übernahme der Berechtigungen hier nicht?

Antwort:
Wenn das Programm mit der Option USRPRF(*OWNER) umgewandelt wurde, werden die Berechtigungen zwar für statisches SQL übernommen, nicht jedoch für dynamisches SQL. Für dynamisches SQL ist zusätzlich die Angabe der Option DYNUSRPRF(*OWNER) erforderlich.

    CRTSQLRPGI OBJ(mylib/myprogram) USRPRF(*OWNER) DYNUSRPRF(*OWNER)

Es ist aber eher zu empfehlen, diese Optionen anstatt bei der Umwandlung direkt innerhalb des Programms zu setzen. Auf diese Weise kann die Angabe nicht vergessen werden, wenn später irgendjemand das Programm erneut umwandeln sollte. Die Angabe innerhalb des Programms kann mit der SQL Anweisung SET Option erfolgen. Beispiel:

     C/exec sql
     C+ SET OPTION
     C+   USRPRF = *OWNER,
     C+   DYNUSRPRF = *OWNER
     C/end-exec

Achtung! Die Benutzung dynamischer SQL Statements innerhalb eines Programms in Verbindung mit Adopted Authority sollte nur mit äußerster Vorsicht verwendet werden. Ein Benutzer, der über die Berechtigung verfügt, das Programm mittels DEBUG zu bearbeiten, hat grundsätzlich auch die Möglichkeit, dynamische SQL Statements mittels Debugger zu verändern. Auf diese Weise kann er sich die Möglichkeit verschaffen, Queries oder Updates auf Dateien auszuführen, auf die er normalerweise keinen Zugriff hat.

Schlagworte: , , , , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.