Objets VARA SEC_SQLI
Les objets VARA SEC_SQLI ou Secure SQL Internal extraient les valeurs de la base de données Automation Engine de manière sécurisée. La différence entre les objets VARA SQLI (SQL Internal) et SEC_SQLI est que les variables SEC_SQLI peuvent toujours être insérées dans les instructions SQL, indépendamment du paramètre VAR_SECURITY_LEVEL dans la variable UC_SYSTEM_SETTINGS - Paramètres système. Pour inclure des variables dans SQL, vous devez utiliser les paramètres de liaison. Ainsi vous ne pouvez pas rédiger d'instructions SQL, ce qui protège la base de données du risque d'une injection SQL.
Comme pour les objets VARA SQLI, les valeurs des variables SEC_SQLI sont extraites directement de la base de données Automation Engine. Un agent de base de données n'est donc pas requis.
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.
Cette rubrique contient les sujets suivants :
- Le paramètre SQLVAR_INTERNAL de la variable UC_SYSTEM_SETTINGS - Paramètres système doit être YES.
- Le nombre maximal de lignes renvoyées doit être défini dans le paramètre SQLVAR_MAX_ROWS de la variable UC_SYSTEM_SETTINGS - Paramètres système.
- Votre définition utilisateur doit avoir le droit de créer et modifier des variables SQL internes.
Définir des objets VARA SEC_SQLI
La définition d'un objet VARA SEC_SQLI 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
Lorsque vous utilisez des objets VARA SEC_SQLI, tenez compte des éléments suivants :
-
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.
-
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.
-
Type
Lecture seule, toujours SQL interne.
-
Instruction SQL Server / Oracle / DB2 / PostgreSQL
Instructions SQL utilisées pour sélectionner certaines entrées de la base de données servant de valeurs de variables.
Vous avez deux options :
- Saisissez votre instruction dans le champ de saisie.
- Pour ouvrir un éditeur de cellule et saisir votre instruction SQL, cliquez sur l'icône, saisissez l'instruction, puis cliquez sur OK.
Longueur maximale : 4096 caractères.
Important ! Les variables qui sont indiquées directement dans SQL ne sont pas remplacées. Pour inclure des variables, utilisez les paramètres de liaison.
Les valeurs de variables dans les instructions SQL s'insèrent à la section Paramètre de liaison. Vous pouvez utiliser des noms d'objets VARA comme paramètres de liaison, avec n'importe quelle valeur de votre choix. Si une variable ou un objet VARA n'existe pas, aucune valeur n'est remplacée, mais c'est le nom de la variable ou de l'objet VARA qui est utilisé. Cela peut provoquer une erreur au moment de la résolution de la variable ou de l'objet VARA.
Les types de variables et objets VARA pouvant être saisis sont les suivants :
- Variables de script
- Variables d'objet
- Variables prédéfinies
- Objets VARA définis par l'utilisateur et prédéfinis
Chaque ligne du tableau représente un paramètre de liaison.
Les types de données et les formats de saisie suivants sont pris en charge pour les paramètres de liaison :
- 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
Important !
- Seuls les types de champs et de formats préalablement répertoriés sont 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.
- La variable VAR_SECURITY_LEVEL (UC_SYSTEM_SETTINGS - Paramètres système) n'impose aucune limite.
- 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).
Exemple :
L'instruction SQL suivante est saisie dans le champ Instruction SQL Server. Les valeurs des variables de liaison remplacent les caractères "?".
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
Voir aussi :