SEC_SQLI VARA-Objekte

SEC_SQLI oder Secure SQL Internal VARA-Objekte rufen Werte aus der Automation Engine-Datenbank auf sichere Weise ab. Der Unterschied zwischen SQLI (SQL Internal)- und SEC_SQLI VARA-Objekten ist, dass mit SEC_SQLI Variablen immer in SQL-Anweisungen eingefügt werden können, unabhängig von der Einstellung VAR_SECURITY_LEVEL in der Variablen UC_SYSTEM_SETTINGS - Systemübergreifende Einstellungen. Um Variablen in das SQL einzubinden, sind sogenannte Bind-Parameter zu verwenden. Dabei ist es nicht möglich, SQL-Anweisungen zusammenzusetzen, wodurch eine Gefährdung der Datenbank durch SQL-Injection ausgeschlossen wird.

Wie SQLI VARA-Objekten werden Variablenwerte in SEC_SQLI direkt aus der Automation Engine-Datenbank bezogen. Ein Datenbank-Agent ist somit nicht erforderlich.

Aus technischen Gründen kann das -System nicht prüfen, ob nur SELECT-Kommandos im SQL der Variablen verwendet werden.

Wichtige Hinweise

Bei der Verwendung von SEC_SQLI VARA-Objekten ist Folgendes zu beachten:

Voraussetzungen

SEC_SQLI VARA-Objekte definieren

Die Definition eines SEC_SQLI VARA-Objekts besteht aus den folgenden Seiten:

Die Seite "Variablen" definieren

  1. Geben Sie im Abschnitt Variableneinstellungen Folgendes an:

    • Typ

      Schreibgeschützt, immer SQL - intern

    • SQL Server- / Oracle- / DB2- / PostgreSQL-Anweisung

      Anweisungen zur Auswahl von Einträgen der Datenbank, welche als Variablenwerte zurückgeliefert werden sollen. Sie haben dafür zwei Möglichkeiten:

      • Geben Sie Ihre Anweisung in das Eingabefeld ein
      • Klicken Sie auf das Symbol, um den Zellen-Editor zu öffnen, und geben Sie Ihre SQL-Anweisung ein

      Maximale Länge: 4096 Zeichen.

      Wichtig! Variablen, die direkt in SQL angegeben sind, werden ersetzt. Um Variablen einzubinden, verwenden Sie die Bind-Parameter.

  2. Im Abschnitt Bind-Parameter können Sie Variablenwerte in SQL-Anweisungen einfügen. Sie können Variablennamen oder VARA-Objektnamen als Bind-Parameter mit beliebigen Werte angeben. Wenn eine Variable oder ein VARA-Objekt nicht vorhanden ist, werden keine Werte ersetzt, sondern derVariablen- oder VARA-Objektname wird verwendet. Dies kann zu einem Fehler führen, wenn die Variable oder das VARA-Objekt aufgelöst wird.

    Sie können folgende Arten von Variablen und VARA-Objekten eingeben:

    • Script-Variablen
    • Objektvariablen
    • Vordefinierte Variablen
    • Vordefinierte und benutzerdefinierte VARA-Objekte

    Jede Zeile in der Tabelle steht für einen Bind-Parameter.

    Unterstützte Datentypen und Eingabeformate

    • Datum: yyyy-mm-dd
    • Zeit: hh:mm:ss
    • Zeitstempel: yyyy-mm-dd hh:mm:ss
    • String: beliebiger String
    • Boolean: mögliche Werte: 0/1 oder true/false
    • Zahl: Kein Tausender-Trennzeichen, Punkt als Dezimaltrennzeichen

    Wichtig!

    • Es werden nur die zuvor aufgeführten Feldtypen und Formate unterstützt
    • Es erfolgt auch keine Umwandlung von Datentypen (z. B.: von Zeitstempel auf Datum)
    • Wird ein ungültiger Wert eingefügt, kommt es zum Fehler beim Ausführen der SQL-Kommandos
    • Die Variable VAR_SECURITY_LEVEL legt keine Einschränkungen fest
    • In den SQL-Anweisungen ist an jeder Stelle, an der der Wert eines Bind-Parameters eingefügt werden soll, das Zeichen "?" anzugeben. Für jedes "?" muss ein Bind-Parameter existieren. Dabei muss auf die richtige Reihenfolge (Tabelle) geachtet werden.
    • Die mehrfache Verwendung von Bind-Parametern ist nicht möglich
  3. Definieren Sie Datentypen und Formatierung.
  4. Definieren Sie den Script-Zugriff.
  5. Wenn Sie bei Mandant 0 angemeldet sind, ist ein zusätzlicher Abschnitt verfügbar. Weitere Informationen finden Sie unter Mandant-0-VARA-Objekte in anderen Mandanten.
  6. Um ein Kommando auszuführen, wählen Sie dieses aus und klicken Sie auf Vorschau. Die Anweisungen werden ausgeführt und die jeweiligen Ergebnisse angezeigt. Die Vorschaufunktion dient der Überprüfung auf mögliche Fehler in den Datenbank-Anweisungen (z. B. ob der Datentyp des VARA-Objekts und der Datenbank nicht übereinstimmen).

    Beispiel:

    Im Beispiel oben wird die folgende SQL-Anweisung in das Feld SQL Server-Anweisung eingegeben. Der Wert der Bind-Variable ersetzt das Zeichen "?".

    select ah_name as ObjectName,ah_timestamp1 as ActivationTime,ah_timestamp2 as StartTime,ah_timestamp4 as EndTime from ah

    where ah_client = ?

    and ah_otype = ?

    and ah_deleteflag = ?

    and ah_hostdst = ?

    order by ah_name asc

  7. Speichern Sie Ihre Änderungen.

Siehe auch: