[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2003
    Beiträge
    192

    Versch. Sql Berechtigung Dynamisch - Statisch ?

    Hi,

    Habe 2 SQL Programme

    1 Statisches SQL -> Berechtigungen sauber
    1 Dynamisches SQl -> Selben Rechte, Selber Nutzer...

    Aber..

    Keine Berechtigung auf Objekt... in Lib ...

    Wohlgemerkt, in beiden Fällen derselbe Nutzer mit derselben Datei...

    Kann mir jemand einen guten Denkanstoss geben warum es einmal klappt und einmal nicht ?

    Danke

    Rince

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    So ganz klar ist mir das eigentlich nicht.
    Es gibt wohl unterschiede zwischen interaktivem (STRSQL) und programmierten SQL.
    Die Fehlermeldung müsste da schon mal genauer sein, ggf. DEBUG einschalten und Joblog anzeigen.

    Es gibt da noch die QM-Profile (STRQM->10), die gelten jedoch nur für die Erstellung neuer QM-Queries.
    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
    Mar 2002
    Beiträge
    5.287
    Hallo,

    Kandidaten:
    - Create Options unterschiedlich (PRTSQLINF)
    - verschiedene Berechtigungen erforderlich (lesen/schreiben)
    - Fehlermeldung führt in die Irre, andere Ursache
    -- keine Journalisierung
    -- read only Cursor
    -- ???

    mfg

    Dieter Bender

    Zitat Zitat von Rincewind
    Hi,

    Habe 2 SQL Programme

    1 Statisches SQL -> Berechtigungen sauber
    1 Dynamisches SQl -> Selben Rechte, Selber Nutzer...

    Aber..

    Keine Berechtigung auf Objekt... in Lib ...

    Wohlgemerkt, in beiden Fällen derselbe Nutzer mit derselben Datei...

    Kann mir jemand einen guten Denkanstoss geben warum es einmal klappt und einmal nicht ?

    Danke

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

  4. #4
    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)

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    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/

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    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 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    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
  •