SEC_SQL VARA-Objekte

SEC_SQL (Secure SQL)  VARA-Objekte rufen Werte aus externen Datenbanken auf sichere Weise ab. SEC SQL-VARA-Objekte sind ähnlich wie SQL VARA-Objekte, da auch sie SQL-Anweisungen auf einer externen Datenbank ausführen. Im Gegensatz zu SQL-VARA-Objekten bieten SEC_SQL-VARA-Objekte jedoch die Möglichkeit, alle unterstützten Variablen innerhalb von SQL-Anweisungen zu verwenden – ohne eine mögliche Gefährdung der Datenbank durch SQL-Injection.

Die Variablen werden unabhängig von den VAR_SECURITY_LEVEL-Einstellungen in den UC_SYSTEM_SETTINGS - Systemübergreifende Einstellungen ersetzt.

Empfehlungen

  • Aus technischen Gründen kann das System nicht prüfen, ob nur SELECT-Kommandos im SQL der Variable verwendet werden. Um zu verhindern, dass andere SQL-Befehle als SELECT ausgeführt werden, stellen Sie einen Datenbankbenutzer mit schreibgeschützten Zugriffsrechten bereit.

  • Für für SEC_SQL-VARA-Objekte ist ein Datenbank-Service-Agent erforderlich, der im DB-Service-Modus gestartet wurde. Dieser muss allerdings Version v9 SP3 oder höher aufweisen. Ältere Agenten unterstützen diesen VARA-Typ nicht. Weitere Informationen finden Sie unter Den Agenten für Datenbankvariablen installieren.

Einschränkung

Dieser Typ VARA-Objekt unterstützt keine binären Felder. Liefert die SQL-Abfrage Binärdaten zurück, so kommt es zu einem Fehler bei der Vorschau oder der Ermittlung der Werte zur Laufzeit.

Hinweise

  • Die maximale Anzahl der zurückgegebenen Zeilen wird in der Einstellung SQLVAR_MAX_ROWS in der Variablen UC_SYSTEM_SETTINGS angegeben.
  • Abhängig vom Datentyp gibt dieses VARA-Objekt "" (String, Datum, Zeit, Zeitstempel) oder 0 (Zahl) für NULL-Werte zurück.

  • Verwenden Sie hier PromptSet-Variablen, wenn Sie die Funktion Dynamisch aktualisieren für Kombinationsfeld-Eingabeaufforderungen verwenden. Die PromptSet-Variablen werden aufgelöst, wenn das Objekt, das die Eingabeaufforderung enthält, ausgeführt wird.

  • In den Abschnitten Variablen-Einstellungen und Bind-Parameter:

    Wenn Sie die Funktion für das dynamische Aktualisieren für Kombinationsfeld-Prompts verwenden, können Sie hier PromptSet-Variablen hinzufügen. Wenn Sie PromptSet-Variablen in einem dynamischen VARA-Objekt verwenden, gibt die Funktion Vorschau einen Fehler zurück. Der Grund hierfür ist, dass PromptSet-Variablen im dynamischen VARA-Objekten nicht existieren. Die PromptSet-Variablen werden jedoch aufgelöst, wenn Objekte, die PromptSet beinhalten, ausgeführt werden.

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

  • Seite "Allgemein"

    Gemeinsam für alle Objekttypen definieren Sie hier grundlegende Objektinformationen und wenden benutzerdefinierte Werte auf sie an.

  • Variablen

    Hier legen Sie die objektspezifischen Einstellungen fest. Einige Abschnitte dieser Seite gelten für alle VARA-Objekte und werden für all diese in eigenen Themen beschrieben:

  • Seite "Versionsmanagement"

    Allgemein für alle Objekttypen finden Sie hier eine Liste aller Versionen des Objekts.

  • Seite "Dokumentation"

    Hier geben Sie die Informationen ein, die Sie als wichtig erachten, um die Konfiguration und das Verhalten des Objekts zu verstehen.

SEC_SQL VARA-Objekt definieren

  1. Geben Sie im Abschnitt Variableneinstellungen Folgendes an:

    • Typ

      Schreibgeschützt, immer SEC_SQL

    • Verbindung

      Das Verbindungsobjekt vom Typ Datenbank, das die Verbindungsparameter zur gewünschten Datenbank enthält.

      Um hier PromptSet-Variablen verwenden zu können, muss die Systemvariable VAR_SECURITY_LEVEL 3 gesetzt werden. Weitere Informationen finden Sie unter VAR_SECURITY_LEVEL.

    • Login

      Login-Objekt, das den Namen und das Passwort des Datenbankbenutzers speichert. Ist kein Login-Objekt angegeben und auch die Option Standard-Login nicht gesetzt, so werden die Anmeldedaten für den Datenbank-Zugriff aus dem Verbindungsobjekt bezogen.

      Um hier PromptSet-Variablen verwenden zu können, muss die Systemvariable VAR_SECURITY_LEVEL 3 gesetzt werden. Weitere Informationen finden Sie unter VAR_SECURITY_LEVEL.

    • Standard-Login

      Standardmäßiges Login-Objekt, das Ihrer Benutzerdefinition zugewiesen ist. Wenn Ihrer Benutzerdefinition kein Login-Objekt zugewiesen ist, tritt ein Fehler auf. Wenn Sie diese Option auswählen, wird das Login-Objekt ignoriert, das im VARA-Objekt angegeben ist.

      PromptSet-Variablen können hier nicht verwendet werden.

    • SQL-Anweisung

      SQL-Anweisungen zur Auswahl von Einträgen der Datenbank, welche als Variablenwerte dienen. Variablen, die direkt in SQL angegeben sind, werden ersetzt.

      Aus technischen Gründen prüft das System nicht die SQL-Anweisungen, die mit Datenbank-VARA-Objekten (SEC_SQLI-, SEC_SQL-, SQLI- und SQL-Typen) verarbeitet werden. Das bedeutet, Sie können Datensätze mit Hilfe von VARA-Objekten ändern oder löschen. Aus Sicherheitsgründen sollten Sie den Benutzerzugriff entsprechend einschränken. Bei VARA-Objekten, die auf eine externe Datenbank zugreifen (SQL, SQL SECURE), sollte ein Datenbankbenutzer verwendet werden, der nur Leserechte besitzt. Bei internen SQL-Variablen (SQLI, SQLI SECURE) kann der Zugriff auf das Objekt durch ein Recht (SQL-interne Variablen anlegen und ändern) eingeschränkt werden.

      Sie können die Variablen hier nicht angeben, aber Sie können sie mithilfe von BIND-Parametern einbinden. Die Bind-Parameter sind in der entsprechenden Tabelle zu pflegen und können vordefinierte Variablen, Platzhalter für VARA-Objekte und PromptSet-Variablen enthalten. Verwenden Sie im SQL-Script "?"- Zeichen an den Speicherorten an, an denen die Bind-Parameter eingefügt werden.

      Maximale Länge: 4096 Zeichen

  2. Sie fügen Variablenwerte innerhalb von SQL-Anweisungen im Abschnitt Bind-Parameter ein. 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 der Variablen- 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 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 muss ein "?"- Zeichen an jeder Stelle verwendet werden, an der der ersetzte Wert eines BIND-Parameters eingefügt werden soll. 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. 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).

    Der Datenbank-Agent sendet die Vorschau-Daten in Form einer Meldung an die Automation Engine. Wenn diese Meldung die maximale Meldungslänge überschreitet, die ein Serverprozess akzeptiert, tritt ein Fehler auf.

    Maximale Länge: Im Parameter MaxMsgSize= der Datei UCSRV.INI der Automation Engine festgelegt.

    Standardwert: 3145 728 Byte.

  6. Um den Inhalt der Vorschautabelle in eine CSV-Datei zu exportieren, klicken Sie auf Tabelleexportieren. Alle Zeilen und Spalten werden exportiert. Verwenden Sie diese Funktion, wenn Sie den Inhalt der CSV-Datei weiter verarbeiten müssen (fügen Sie ihn in eine andere Anwendung zur weiteren Verarbeitung ein und so weiter).

  7. Um eine oder mehrere Zeilen in der Vorschautabelle zu kopieren, wählen Sie die Schaltfläche Kopieren aus. Die ausgewählten Zeilen werden in die Zwischenablage kopiert und Sie können sie in ein Drittanbieter-Tool (Google, Sheets, Excel, Texteditor usw.) einfügen.

    Hinweis: Diese Funktion ist nur verfügbar, wenn https auf Automic Web Interface verwendet wird.

  8. Speichern Sie Ihre Änderungen.

Siehe auch: