[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Oct 2003
    Beiträge
    192
    Hallo,

    Nein, es sind 2 SQLRPGLE Programme.


    Fehlermeldung ist

    SQLCOD -551 Keine Berechtigung für Objekt (Dateiname) in Bibliothek (LibName) der Art *file

    Diese Meldung kommt vom Prepare Statement.

    Ich habe inzwischen die User auf die spez. Datei berechtigt und nun dürfen sie auch dynamische SQLs auf die Datei machen.


    /edit /

    Keine Journalisierung (mit Set Option Commit = *NONE auch in beiden Programmen ausgeschlossen)

    Beide SQLs haben am Ende "For Read only" stehen und haben die Datei jeweils im Left outer join.

    Keine PRTSQLINF Unterschiede (mal abgesehen davon dass bei dem Dynamischen natürlich keine SQL Performance Analysen hat)

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    wo kam die Berechtigung denn vorher her???

    mfg

    Dieter

    PS: wenn ihr nix übersehen habt, dann kann das auch ein Bug sein.

    Zitat Zitat von Rincewind
    Hallo,
    Ich habe inzwischen die User auf die spez. Datei berechtigt und nun dürfen sie auch dynamische SQLs auf die Datei machen.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    es kann Unterschiede in der Berechtigung zwischen statischem und dynamischem SQL geben!
    Gesteuert wird dies über die Optionen USRPRF (Programm-Ausführung und statisches SQL) und DYNUSRPRF (Dynamisches SQL) im Compile Command.

    1. USRPRF:
    *NAMING (Unterlassungs-Wert) das Benutzer-Profil wird durch die Namenskonventionen bestimmt.
    Wird *SQL-Naming verwendet, wird das User Profile *OWNER verwendet, bei *SYS-Naming dagegen das Benutzer-Profile *USER
    Alternativ können auch die Optionen *OWNER oder *USER gesetzt werden
    --> Diese Berechtigungen gelten für das statische SQL

    2. DYNUSRPRF
    Diese Option steuert die Berechtigungen des Benutzer-Profiles für Dynamisches SQL. Der Unterlassungs-Wert ist *USER.
    Alternativ kann auch *OWNER gesetzt werden.

    Wenn Du also *SQL-Naming verwendest und die Unterlassungs-Werte nicht veränderst, kann es vorkommen, dass ein Programm mit statischem SQL ausgeführt werden kann (User Profile *OWNER), während zum Ausführen des dynamischen SQLs das Benutzer-Profil *USER verwendet wird.

    Anstatt die Optionen im Compile-Befehl zu setzen, kannst Du natürlich ein entsprechendes SET-OPTION-Statement in Dein Programm einbinden.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Oct 2003
    Beiträge
    192
    Vielen heissen Dank,

    Genau da lag der Unterschied zwischen Dynamischen und statischen Sqls....

    /bow

    Rince

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. embedded SQL statisch oder dynamisch
    By Jamikl in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 30-06-06, 09:48
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  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
  •