[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Hast du mal den SQLCODE nach dem Set ausgewertet?
    Laut Doku ist eine Kennwortkonstante in statischem SQL nicht erlaubt. Hierfür ist auf jeden Fall eine Hostvariable erforderlich.
    In dynamischem SQL wiederum geht's.
    Probier das mal aus und gib mal den SQLCODE/SQLSTATE z.B. per DSPLY aus.
    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

  2. #2
    Registriert seit
    Oct 2015
    Beiträge
    109
    Danke für die Idee,

    Du hast Recht, konstant setzen kannst du das nicht.
    Dann lässt sich das Programm nicht einmal wandeln.
    Das mach ich aber auch nicht. ich ermittle innerhalb der Programms anhand der Daten des Benutzers
    ein Passwort.
    Ich hab zur Sicherheit noch mal nachgesehen, aber sqlcode und state sind 0 -> alles super.
    Innerhalb der Programme klappt das ja auch, ein zweites Programm schreibt Sätze in die Datei.
    Bloß interaktiv "zählt" das gesetzte passwort nicht und ich muss den Befehl vor Aufruf meiner View
    manuell setzen.

    Da hab ich auch noch ein weiteres Problem - meine View hat dann ein Problem, falls verschiedene PWs
    innerhalb der gleichen table verwendet wurden. Das ist auch unschön, kann ich aber logisch lösen.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Da hilft dann nur eine SQL-Function (UDF), die du in der View aufrufst.
    Zusätzllich definierst du eine nicht-globale Sitzungs-Variable für das Kennwort, hier sind alternativ natürlich auch andere Varianten denkbar.
    Die UDF liest das Kennwort, setzt dies per Set Encryption, decrypted den Wert und macht u.U. auch wieder ein Set Encryption zurück. Damit kannst du dann auch die verschiedenen Passwort-Varianten erreichen.
    Sitzungsvariablen halt deshalb, dass nicht irgend jemand anders dann ganz zufällig per ODBC die View ausliest.
    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

  4. #4
    Registriert seit
    Oct 2015
    Beiträge
    109
    Das klingt vielversprechend,
    aber selbst für eine SQL UDF funktioniert es bei mir leider nicht:
    create or replace function mylib.uftest(pw char(8))
    returns char(1)
    language sql
    modifies sql data
    begin
    declare isok char(1);
    set encryption password = pw;
    set isok = 'A';
    return isok;
    end

    select a.*, mylib.uftest('testab') from myview a
    Die Fehlermeldung bleibt identisch:
    Ursache . . . . : Funktion DECRYPT_CHAR kann nicht ausgeführt werden;
    Ursachencode 1. Ursachencodes und ihre Bedeutung:
    1 -- Der Wert für ENCRYPTION PASSWORD ist nicht festgelegt.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Da hast du mich missverstanden.
    Ggf. gilt das Kennwort nur ab Aufrufebene. M.a.W, wenn die Aufrufebene verlassen wird, ist auch das Kennwort weg. Ggf. kannst du das mal verifizieren in dem dein RPG den Set encryption durchführt und QCMD aufruft. Dann mit STRSQL die View ansehen. Wenn STRSQL und QCMD und somit auch dein RPG dann verlassen wird könnte die View dann wieder verschlüsselt sein.
    Somit könntest du vielleicht auch eine Tablefunction schreiben, die das Kennwort setzt und einen Cursor mit dem Decrypt zurückgibt.
    Leider finde ich in der Doku nichts über die Gültigkeitsdauer des Set Encryption.

    Ansonsten:
    - du definierst eine SQL-Variable (create variable)
    - Per Funktion/Aufruf o.ä. führst du "Set Variable = Password" aus
    - die UDF hat einen Parameter, z.b. Varchar(256) und Return Varchar(256) führt den Set Encryption und den Decrypt aus: set encryption = Variable; return decrypt(Parameter);

    Wenn die Variable nicht Global ist gilt sie nur für den Job.
    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

Tags for this Thread

Berechtigungen

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