[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    119

    Unhappy andere Berechtigung in SQL-Unterprogramm?

    Hallo,

    ich habe ein SQLCBLLE-Programm, das einen SELECT-Befehl auf eine Datei macht, auf die nur wenige Benutzer Berechtigung haben.
    Was muß ich tun, damit dieses Unterprogramm Berechtigung auf diese Datei hat? Ich dachte beim Umwandeln (CRTSQLCBLI) gebe ich bei Benutzerprofil USRPRF *OWNER an und dann geht's. Leider nicht. Muß ich innerhalb des Programms einen neuen CONNECT machen mit einem Benutzerprofil das Berechtigung auf die Datei hat? Wenn ein Parameter beim Umwandeln dafür zuständig ist, würde ich lieber das machen.

    Danke für Tipps.

    Grüße
    Reiner

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Probiers mit
    /exec sql set option usrprf=*owner
    /end-exec
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    119
    Zitat Zitat von Fuerchau
    Probiers mit
    /exec sql set option usrprf=*owner
    /end-exec
    Danke für den Beitrag.
    Das sollte ja eigentlich das gleiche sein wie USRPRF(*OWNER) beim Umwandeln. Es kommt immer noch die Fehlermeldung "keine Berechtigung" SQL0551.

    Reiner

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    die Problem beschreibung ist ein wenig zu allgemein gehalten:
    bei dynamischem SQL muss zusätzlich DYUSRPRF auf Owner gestellt werden (beim Compile, oder set option, was ebenfalls zur Compiletime wirkt.
    Bei remote Zugriff wird als Owner immer der Owner des Packages gezogen, was beim deployment zu Problemen führen kann, da gehören die Packages zuweilen dem QUSER.

    mfg

    Dieter Bender

    Zitat Zitat von rebe
    Hallo,

    ich habe ein SQLCBLLE-Programm, das einen SELECT-Befehl auf eine Datei macht, auf die nur wenige Benutzer Berechtigung haben.
    Was muß ich tun, damit dieses Unterprogramm Berechtigung auf diese Datei hat? Ich dachte beim Umwandeln (CRTSQLCBLI) gebe ich bei Benutzerprofil USRPRF *OWNER an und dann geht's. Leider nicht. Muß ich innerhalb des Programms einen neuen CONNECT machen mit einem Benutzerprofil das Berechtigung auf die Datei hat? Wenn ein Parameter beim Umwandeln dafür zuständig ist, würde ich lieber das machen.

    Danke für Tipps.

    Grüße
    Reiner
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    119
    Hallo Dieter,

    es ist kein dynamisches SQL und auch kein Remote-Zugriff.

    Es geht darum, daß ein Unterprogramm Zeiten von Mitarbeitern ermitteln soll. Dieses Unterprogramm benutzt SQL-Befehle (select). Der User, der das Hauptprogramm aufruft, hat keine Berechtigung auf diese Stundendatei. Damit das Unterprogramm aber die Stunden holen kann, muß es mit einem anderen Benutzerprofil auf die Daten zugreifen. Das versuche ich zu programmieren.

    Alles klar soweit?

    Reiner

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    genau für diesen Fall gibt es ja diesen Compile Parameter und der funzt bei mir eigentlich immer, es muss da also eine spezielle Konstellation vorliegen. Was meint hier eigentlich Unterprogramm? Sind da noch SQL Programme drüber? Hast du mal alle SQL Programme im Call stack mit Owner umgewandelt? Oder ist das ILE und hast du dem "Unterprogramm" mal eine eigene Activationgroup verpasst? Gibt es weitere Meldungen im Joblog? Hast du das ganze mal unter Debug gemacht, um sicher zu gehen, dass der Fehler auch an dieser Stelle auftritt?

    mfg

    Dieter Bender

    Zitat Zitat von rebe
    Hallo Dieter,

    es ist kein dynamisches SQL und auch kein Remote-Zugriff.

    Es geht darum, daß ein Unterprogramm Zeiten von Mitarbeitern ermitteln soll. Dieses Unterprogramm benutzt SQL-Befehle (select). Der User, der das Hauptprogramm aufruft, hat keine Berechtigung auf diese Stundendatei. Damit das Unterprogramm aber die Stunden holen kann, muß es mit einem anderen Benutzerprofil auf die Daten zugreifen. Das versuche ich zu programmieren.

    Alles klar soweit?

    Reiner
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ein solches Unterprogramm muss sowohl mit *OWNER im Programm als auch per USRPRF=*OWNER im SQL erstellt werden.
    Wenn es innerhalb einer bestehenden SQL-Session aufgerufen wird, erfolgt keine neue SQL-Anmeldung (intern wird automatisch connected) sondern die aktuelle Sitzung verwendet.
    Es ist also auf jeden Fall eine eigene Aktivierungsgruppe erforderlich um nicht in bestehende SQL-Sessions hineinzugeraten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    119

    Thumbs up

    Das Problem ist gelöst, bzw. umgangen.
    Danke für alle Beiträge.

    Zuerst habe ich das Programm in ILE COBOL geschrieben. Bin halt in RPG noch nicht so fit. Dann habe ich das Programm spaßeshalber mal in RPG geschrieben und siehe da, es funktioniert sofort. Sch... COBOL!
    Wahrscheinlich geht es in COBOL auch, aber habe keine Lust da jetzt weiter rumzuhexen.

    Grüße
    Reiner

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    119

    Unhappy

    Hallo,

    das Problem ist doch nicht gelöst. Ich habe da eine Kleinigkeit übersehen. Zwischendurch habe ich zum Test dem User mal die Berechtigung *USE für die Datei gegeben und vergessen, das wieder rauszunehmen, dann ist klar, daß es geht.

    Nehmen wir mal die RPG-Version. Damit beschäftigen sich wohl mehr hier. Zum Testen rufe ich das Programm einfach per Call auf, nicht aus einem übergeordneten Programm.

    Im Programm habe ich DFTACTGRP(*NO) ACTGRP(*NEW) gesetzt. Zusätzlich noch "set option usrprf = *owner".
    Berechtigung auf die Datei ist PUBLIC *EXCLUDE. Ich als Umwandler des Programms habe *ALL.
    Beim Ausführen des Programms mit einem dummen User bekomme ich ein CPF4269 (Keine Berechtigung für Objekt ...).
    Hat jemand eine Idee was ich probieren kann?

    Danke für eure Unterstützung schon mal.

    Grüße
    Reiner

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Und das Programm selber läuft auch unter *OWNER ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Jun 2001
    Beiträge
    119

    Thumbs up

    Ach ja, der Teil war mir noch unklar.
    Ich habe das Programm (CRTSQLRPGI) mit USRPRF(*OWNER) umgewandelt. Wenn ich dsppgm mache, dann steht unter Benutzerprofil immer *USER. Ich habe das Programm immer neuumgewandelt, aber nie gelöscht!!

    Jetzt habe ich gerade spaßeshalber mal in die Hilfe zum Befehl CRTBNDRPG geschaut und da steht in der Hilfe zum Parameter Benutzerprofil "Dieser Parameter wird nicht aktualisiert, wenn das Programm bereits vorhanden ist. Um den Wert für USRPRF zu ändern, das Programm löschen und unter Verwendung des korrekten Werts erneut umwandeln.". Tja, da war der Haken. Das sollte in der Hilfe beim Befehl CRTSQLRPGI aber auch drin stehen. So schnell kommt man da nicht drauf.

    So jetzt geht's. Berechtigung habe ich kontrolliert!

    Danke für die Nachfrage.

    Reiner

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. Versch. Sql Berechtigung Dynamisch - Statisch ?
    By Rincewind in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 02-03-06, 09:54
  5. Berechtigung SQL
    By TARASIK in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 14-11-05, 16:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •