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

    Question Berechtigung für Stored Procedure

    Hallo,

    ich habe SQL-Befehle zum Erstellen einer Stored Procedure in eine Quell-Datei geschrieben und mit RUNSQLSTM und den Parametern USRPRF *OWNER DYNUSRPRF *OWNER erstellt.

    Die Stored Procedure liest Daten, die geschützt sind. Ich habe aber Zugriff darauf. Wenn ich diese Procedure jetzt über ODBC von Windows XP in einem Programm aufrufe, muß man sich an der iSeries anmelden (ich nehme einen normalen, nicht für die Daten berechtigten User), dann kommt der Job mit Benutzer QUSER auf die iSeries und hat keine Berechtigung für die Daten, die in der Stored Procedure gelesen werden sollen.

    Geht das gründsätzlich so nicht oder was mache ich falsch?

    Danke für Eure Hilfe.

    Grüße
    Reiner

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Der RUNSQLSTM hat keine Auswirkungen auf das Erstellen der Prozedur.
    Innerhalb der Prozedur kannst du mit SET OPTION auf bestimmte Attribute Einfluss nehmen.
    Per GRANT kann die Berechtigung zum Aufruf der Prozedur vergeben werden.
    Das Service-Programm kann zwar unter *OWNER laufen, das betrifft aber nicht die SQL-Berechtigungen.

    Dass der ODBC-Job unter QUSER läuft tut nichts zur Sache, da der Job tatsächlich auf den angemeldeten User "umgebogen" wird. D.h., dass alle Berechtigungen, Aufruf der Prozedur, Zugriff auf Dateien (auch innerhalb der Prozedur) auf Berechtigungen des Users geprüft werden.

    Im Wesentlichen unterscheidet sich also das Berechtigungskonzept zwischen SQL und nativen Dateizugriffen.
    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
    Sep 2006
    Beiträge
    162
    Die SQl Fraktion wird dir das noch genauer erklären. Aber beim Zugriff über ODBC gilt nur die Berechtigung des Benutzers das angemeldet ist.
    So kleinigkeiten wie adoptet authority haben leider keinen Einfluss.


    Gruß
    DVE

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    119
    Ich habe etwas rumprobiert, aber das Problem noch nicht gelöst.

    Create Procedure XXX ... SET OPTION USRPRF=*OWNER
    begin

    end

    Damit hat der normale User über ODBC noch keine Berechtigung für die Daten, die in der Stored Procedure angesprochen werden. Berechtigung für die Procedure ist vorhanden.

    Was muß ich denn machen, damit die SQL-Anweisungen Berechtigung für die Daten haben? Außer die Berechtigung selbst zu ändern.

    Gruß
    Reiner

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Genau dieses.
    Der User benötigt die Leseberechtigung an den Tabellen, die durch die Prozedur gelesen werden.
    Ein Erben von Berechtigungen gibts in SQL eben nicht !!!!

    Mit OPTION USRPRF=*OWNER wird nur die Standard-Lib bei nichtqualifizierten Angaben gemacht, also:

    USRPRF=*USER

    select * from myfile => select * from username/myfile

    USRPRF=*OWNER
    select * from myfile => select * from ownername/myfile

    Das hat aber mit Berechtigungen eben nichts zu tun.
    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

  6. #6
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Hallo,

    hier noch eine Idee, vielleicht passt es ja:

    man kann die Datenbibliotheken für normale User dicht machen und die benötigten Daten als LF oder VIEW in eine spezielle Bibliothek "spiegeln", auf die der User lesen darf. Hier kann ich jetzt mit AS400-Objektberechtigungen agieren.

    Für ein einfaches Berechtigungskonzept mag das reichen.

    Gruß
    Christian

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da kann ich auch gleich die richtige LIB nehmen, da ich ja über die LF bereits alles darf.
    Solche Methoden eignen sich leider nur für native Programmzugriffe und geerbte Berechtigung, was nun mal mit SQL ja nicht geht.

    Die einzige Alternative ist hier, sich per ODBC mit einem APP-User (nicht 5250-anmeldefähig, ggf. Gruppenprofil) anzumelden.
    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

Similar Threads

  1. SQL Stored Procedure verschwindet
    By florian in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 17-05-06, 16:08
  2. Stored Procedure *debugging*
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 04-04-06, 10:45
  3. Stored Procedure mit Problemen
    By peter.kinne in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 15-04-05, 09:04
  4. Java Stored Procedure
    By HeisigA in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 21-02-05, 18:58
  5. Löschen/Überschreiben einer Stored Procedure
    By Frank Pusch in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 13-06-01, 17:57

Berechtigungen

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