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

    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
    18.589
    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: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Oct 2015
    Beiträge
    12
    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
    18.589
    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: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    4.919
    ... 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.621
    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 2020
    Virtuelle SQL und RPG Schulungen

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    18.589
    "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: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Oct 2015
    Beiträge
    12
    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
    12
    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.

Ähnliche Themen

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

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •