Objets VARA SEC_SQL
Les objets VARA SEC_SQL ou Secure SQL extraient les valeurs des bases de données externes en toute sécurité. Les objets VARA SEC_SQL sont semblables aux objets VARA SQL car ils exécutent également des instructions SQL sur une base de données externe. Contrairement aux objets VARA SQL, les objets SEC_SQL vous permettent d'utiliser toutes les variables prises en charge dans les instructions SQL, sans risque d'une injection SQL dans la base de données. Les variables sont remplacées, indépendamment des paramètres VAR_SECURITY_LEVEL dans la variable UC_SYSTEM_SETTINGS - Paramètres système.
Cette rubrique contient les sujets suivants :
Définir des objets VARA SEC_SQL
La définition d'un objet VARA SEC_SQL se compose des pages suivantes :
- Page Général
-
Variables
Vous permet de définir les paramètres spécifiques aux objets. Certaines sections de cette page sont communes à tous les objets VARA et sont décrites dans des rubriques dédiées :
- Paramètres des variables, voir ci-après
- Paramètres
- Formats et types de données
- Accès au script
- Objets VARA du client 0 dans d'autres clients
- Aperçu, voir ci-après
- Page Gestion des versions
- Page Documentation
Vous ne pouvez pas spécifier de variables directement dans le champ Requête SQL, mais vous pouvez les inclure dans des paramètres de liaison. Ces paramètres de liaison sont gérés dans les tables correspondantes et peuvent contenir des variables prédéfinies, des espaces réservés pour les objets VARA et des variables PromptSet. Dans le script SQL, utilisez le caractère ? à l'emplacement où les paramètres de liaison doivent être insérés.
Pour des raisons techniques, le système ne peut pas vérifier si seules des commandes SELECT sont utilisées dans le SQL de la variable. Pour empêcher l'exécution de commandes SQL autres que SELECT, il est conseillé de déployer un utilisateur de la base de données n'ayant que des droits de lecture.
Ce type de variable requiert également un agent de service BDD démarré en mode de service BD et qui est en version v9 SP3 ou supérieure. Les anciens agents ne prennent pas en charge le type de variable SQL SECURE.
Lorsque vous utilisez des objets VARA SEC_SQL, tenez compte des éléments suivants :
- Le nombre maximal de lignes retournées est déterminé par le paramètre SQLVAR_MAX_ROWS de la variable UC_SYSTEM_SETTINGS.
-
Les objets VARA de base de données (de type SEC_SQLI, SEC_SQL, SQLI et SQL) ne prennent pas en charge les champs binaires. Les données binaires résultant d'une requête SQL provoquent une erreur dans l'aperçu ou lorsque les valeurs sont récupérées lors de l'exécution.
-
Pour des raisons techniques, le système ne vérifie pas les instructions SQL traitées dans les objets VARA de base de données (de type SEC_SQLI, SEC_SQL, SQLI et SQL), Vous pouvez modifier ou supprimer des enregistrements de données à l'aide d'objets VARA. Pour des raisons de sécurité, pensez à limiter l'accès utilisateur en conséquence. Si possible, déployez un utilisateur de base de données ayant des droits d'accès en lecture seule aux objets VARA pouvant accéder à une base de données externe (SQL, SQL SECURE). Pour les variables SQL internes (SQLI, SQLI SECURE), vous pouvez limiter l'accès aux objets au moyen d'un privilège (créer et modifier des variables SQL internes).
-
Selon le type de données, les objets VARA de base de données (de type SEC_SQLI, SEC_SQL, SQLI et SQL) renvoient la valeur '''' (chaîne de caractères, date, heure, horodatage) ou 0 (nombre) pour les valeurs NULL.
-
Les variables PromptSet sont supportées dans les champs sélectionnés pour les variables de type BACKEND, EXEC, FILELIST, SEC_SQLI, SEC_SQL, SQLI, SQL et XML. La fonction Rechargement dynamique (prompts Liste déroulante) requiert l'utilisation de variables PromptSet.
-
Dans les sections Paramètres de variables et Paramètres de liaison :
You can include PromptSet variables here when using the Rechargement dynamique (prompts Liste déroulante) feature for Combobox prompts. When you use PromptSet variables in a dynamic VARA object, the Preview feature returns an error. This is because the PromptSet variables do not exist in the dynamic VARA object. However, the PromptSet variables will be resolved when objects including the PromptSet are executed.
Section Paramètres des variables
-
Type
Lecture seule, toujours SEC_SQL.
-
Connexion
L'objet Connexion de type Base de données qui contient les paramètres de connexion pour la base de données sélectionnée.
-
Login
L'objet Login qui enregistre le nom et le mot de passe de l'utilisateur de la base de données.
Si vous ne spécifiez pas d'objet Login, ni ne cochez l'option Login par défaut, les données de connexion permettant d'accéder à la base de données sont extraites de l'objet Connexion.
Une erreur survient à la résolution de l'objet VARA et cet objet ne contient aucune information de connexion.
-
Login par défaut
Vous pouvez aussi sélectionner un objet Login pour les objets VARA SQL dans l'objet Utilisateur (login par défaut), voir Utilisateurs (USER).
Activez l'option Appliquer login utilisateur pour appliquer l'objet Login affecté à l'utilisateur actuel. Il en résulte que l'objet Login spécifié dans l'objet VARA est ignoré.
Si l'objet VARA doit être résolu et qu'aucun login n'est défini dans l'objet utilisateur, une erreur se produit.
Les variables PromptSet ne peuvent pas être utilisées ici.
-
Instruction SQL
Instructions SQL utilisées pour sélectionner certains éléments de la base de données qui servent de valeurs de variables.
Les variables qui sont indiquées directement dans SQL ne sont pas remplacées. Pour inclure des variables, utilisez les paramètres de liaison.
Taille maximale : 4096 caractères
Les paramètres de liaison permettent d'insérer des valeurs de variables dans les instructions SQL. Vous pouvez utiliser des variables de script, des variables d'objet, des variables prédéfinies et des caractères de remplacement pour les objets VARA que vous saisissez dans cette table. Chaque ligne représente un paramètre de liaison. Vous pouvez utiliser des noms de variables comme paramètres de liaison, avec la valeur de votre choix.
Formats d'entrée et types de données pris en charge :
- Date : aaaa-mm-jj
- Heure : hh:mm:ss
- Horodatage : aaaa-mm-jj hh:mm:ss
- String : chaîne de caractères au choix
- Booléen : valeurs possibles: 0 / 1 ou vrai / faux
- Nombre : pas de séparateur des milliers, un point en tant que séparateur de décimale
Les autres types de champ de la base de données et les autres formats ne sont pas pris en charge. Les types de données ne sont pas convertis (pas de conversion d'horodatage à date). Si une valeur non valide est insérée, une erreur survient lors de l'exécution de la commande SQL.
Important !
- Si une variable indiquée n'existe pas, aucune valeur ne pourra être remplacée. Dans ce cas, le nom de la variable est utilisé, ce qui peut provoquer une erreur lors de la résolution de la variable.
- La variable VAR_SECURITY_LEVEL (UC_SYSTEM_SETTINGS) n'impose aucune limitation.
- Dans les instructions SQL, vous devez utiliser le caractère ? à chaque emplacement où la valeur remplacée d'un paramètre de liaison doit être insérée. Un paramètre de liaison doit exister pour chaque "?". Assurez-vous de maintenir l'ordre correct du tableau. Notez que vous ne pouvez pas utiliser des paramètres de liaison plusieurs fois.
Pour exécuter une commande, sélectionnez-la, puis cliquez sur Aperçu. Les instructions sont exécutées et leurs résultats s'affichent. La fonction d'aperçu permet de vérifier les erreurs potentielles dans les instructions de base de données (si, par exemple, le type de données de l'objet VARA et de la base de données ne correspondent pas).
L'agent de base de données envoie les données d'aperçu sous forme de message à Automation Engine. Si le message dépasse la longueur maximale acceptée par le processus du serveur, une erreur se produit.
Taille maximale : Définie dans le paramètre MaxMsgSize= du fichier Automation Engine UCSRV.INI.
Valeur par défaut : 3145 728 octets.
Voir aussi :