[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2015
    Beiträge
    15

    Berechtigung per SQL auf Index vergeben

    Hallo *all,

    ich habe eine Tabelle mit SQL erstellt und zu dieser Tabelle einige Indexe.
    Auf diese Indexe greif ich mit SQLRPGLE zu, was auch wunderbar funktioniert.
    Allerdings haben die User keine Berechtigung auf die Indizes.
    Wie kann ich mit SQL die Berechtigung so vergeben, das der User auch darauf zugreifen kann.
    Mit Gant bekomme ich immer die Meldung:
    "DATEI" in "LIB" keine Tabelle, Sicht oder physische Datei.
    Vielen Dank für eure Hilfe.

    Gruß Heinfried

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Eine Zugriffsberechtigung auf Indizes ist nicht nötig, da du per SQL einen Index nicht abfragen kannst.
    SQL wählt einen Index selber aus. Du brauchst also nur die Berechtigung für die Tabelle.
    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
    Oct 2015
    Beiträge
    15
    Bei SQL mag das so sein. Aber wenn ich mit SQLRPGLE auf den INDEX ( welcher vom RPG als LF erkannt wird) bekommt der User ein Berechtigungsproblem. Wenn ich dann die Berechtigung z.B. über WRKOBJ auf die "LF" (INDEX) vergebe, sind die Berechtigungsprobleme wie weg geblasen.
    das sind dann aber immer zwei Scritte, die ich machen muss. Würde das lieber gleich im SQL erledigen

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Tja, das ist die "böse Tat" wenn man SQL und Native vermischt.
    Rein technisch gesehen solltest du dann eine DDS-LF (wie früher auch) erstellen, dann hast du nur einen Schritt.
    So musst du nachdem SQL Create Index halt noch per CLP einen CHGOBJAUT hinterher schicken.

    Allerdings hilft dir ggf. die Einstellung per CHGLIB für die Berechtigung neuer Objekte für diese Lib.
    Diese Funktionalität wird häufig vergessen oder ist sogar unbekannt.
    https://www.ibm.com/support/knowledg...#CHGLIB.CRTAUT
    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... der CRTAUT zieht allerdings nicht bei naming(*SQL) bei der Erstellung, selbiger führt immer zu publi exclude.

    D*B
    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.869
    Ich bin mir nicht sicher, ob Du von Indices oder Views redest.
    Auf einen Index kannst Du nur mit Native I/O zugreifen.
    Einen Index kann man nicht in SQL angeben, sondern nur eine View.
    Also auf was greifst Du denn wie zu?
    Hast Du die logische Datei in einen Index konvertiert?
    Hattest Du die logische Datei in einem SELECT Statement angegeben? (im übrigen keine gute Idee, weil der Query Optimizer das SELECT Statement basierend auf der physischen Datei/Tabelle neu schreiben muss).
    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
    Feb 2001
    Beiträge
    20.207
    "ich habe eine Tabelle mit SQL erstellt und zu dieser Tabelle einige Indexe."
    war doch eigentlich eindeutig;-).
    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
    Oct 2015
    Beiträge
    15
    Wie schon geschrieben habe ich per create Table eine Tabelle erstellt und dann mit create index verschiedene Indexe mit und ohne where Bedingungen erstellt. Diese können dann in den alten RPG-Programmen als LF mit Key verwendet werden.
    Anschließend dann: GRANT SELECT, UPDATE, INSERT ON "Table" TO PUBLIC.
    Funktioniert wunderbar. Nur die User haben keine Berechtigung auf die "LF-Dateien", die im RPG verwendet werden.
    Das muss extra mit z.B. chgaut für die Indexe angepasst werden. Dann läufts.

  9. #9
    Registriert seit
    Oct 2015
    Beiträge
    15
    Habe für mich eine Lösung gefunden:

    cl: GRTOBJAUT OBJ(LIB/INDEX) OBJTYPE(*FILE) USER(*PUBLIC) AUT(*USE)

    das mit in den Script schreiben und dann das ganze Script ausführen --- fertig.

Similar Threads

  1. SQL index auf view
    By dibe in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 01-07-18, 17:27
  2. SQL View mit Index/Key
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 19-10-16, 19:53
  3. LF / SQL index
    By woodstock99 in forum NEWSboard Programmierung
    Antworten: 31
    Letzter Beitrag: 18-03-15, 14:29
  4. Create Index
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 06-11-13, 12:44
  5. 25.000.- Euro Weihnachtsgeld zu vergeben !
    By AS-Trade in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 19-10-02, 18:58

Tags for this Thread

Berechtigungen

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