Tous les produits
Search
Centre de documentation

Data Management:SQL Correct

Dernière mise à jour :Aug 09, 2026

La fonctionnalité SQL Correct sert de point d'entrée pour l'exécution des modifications SQL et exige un haut niveau de sécurité. Lorsque vous soumettez un ticket pour approbation, une série de règles de sécurité vérifie la demande. Seules les instructions SQL validées peuvent être exécutées.

Prérequis

Vous êtes Administrator, DBA ou Security Administrator.

Contexte

Les règles de sécurité de Data Management (DMS) offrent des fonctionnalités flexibles basées sur un langage spécifique au domaine (DSL). Vous pouvez ainsi personnaliser les niveaux de risque selon vos besoins et appliquer différents workflows d'approbation aux modifications en fonction de leur risque. Par exemple, vous pouvez restreindre strictement l'exécution SQL ou autoriser toutes les instructions avec plus de souplesse.

Points de contrôle du module SQL Correct

Point de contrôle

Description

Exemple

Basic Configuration Item

Cette section contient cinq règles par défaut :

  • Default approval template for data changes : L'ID du modèle d'approbation par défaut pour les tickets de modification de données est 853 et l'approbateur est le DBA.

    Remarque

    Pour modifier le modèle d'approbation par défaut, consultez la rubrique Changer le modèle d'approbation par défaut.

  • Risk level list for data changes : Les niveaux de risque servent à évaluer les risques liés aux modifications dans les tickets. Vous pouvez définir différents niveaux de risque et workflows d'approbation pour divers scénarios. Cette configuration s'applique principalement aux points de contrôle Risk Identification Rules et Risk Approval Rules.

    Quatre niveaux de risque par défaut sont disponibles :

    • LOW : Risque faible

    • MIDDLE : Risque moyen

    • HIGH : Risque élevé

    • HIGHEST : Risque majeur

  • Support for simple mode in data import : Indique si le mode simple est pris en charge lors de la création de tickets d'importation de données pour les bases de données utilisant cette règle de sécurité. Pour plus d'informations, consultez la rubrique Data Import.

  • Allow Skipping The Affected Rows Check For Standard Data Changes : Si vous activez cette règle, DMS interdit d'ignorer la vérification du nombre de lignes affectées pour les tickets de modification de données standard lors de l'étape de précontrôle. Sinon, vous pouvez ignorer cette vérification.

  • Prohibit submitting normal data change tickets with inconsistent row count checks : Si cette règle est activée, vous ne pouvez pas soumettre de tickets de modification de données normaux dont la vérification du nombre de lignes est incohérente. Sinon, leur soumission est autorisée.

-

SQL execution rules

Restreint les instructions SQL exécutable dans la fenêtre SQL. Seules les instructions autorisées s'exécutent.

Remarque

Si deux règles contradictoires sont activées, la plus stricte s'applique.

Par exemple, si les deux règles suivantes sont activées, le système applique la seconde.

  • Autoriser l'exécution directe de toutes les instructions DML dans la console SQL.

  • Interdire l'exécution directe de toutes les instructions DML dans la console SQL. Elles doivent passer par des tickets.

Pour autoriser uniquement les instructions DML à modifier la base de données de production, ajoutez la règle d'exécution SQL suivante :

Hypothèses

if
  @fac.env_type not in ['product']
  and
  @fac.sql_type in [ 'UPDATE','DELETE','INSERT']
then
  @act.allow_submit
end

Signification : Si l'environnement de la base de données n'est pas un environnement de production et que l'instruction SQL est de type UPDATE, DELETE ou INSERT, l'exécution de l'instruction SQL est autorisée.

Risk Identification Rules

Identifie le niveau de risque des tickets soumis. Vous pouvez personnaliser les niveaux de risque en fonction de conditions telles que l'environnement de la base de données, le nombre de lignes affectées et le type SQL.

Remarque

Différentes règles de sécurité attribuent différents niveaux de risque à une tâche de modification. Le niveau de risque final correspond au niveau le plus élevé parmi tous ceux identifiés.

Par exemple, une tâche de modification SQL comportant 5 risques faibles, 3 risques moyens et 1 risque élevé est classée comme présentant un risque élevé.

Pour définir les environnements hors ligne comme présentant un risque faible, ajoutez la règle d'identification des risques suivante :

if
  @fac.env_type not in ['product','pre']
then
  @act.mark_risk 'low' 'Low risk: offline environment'
end

Signification : Si l'environnement de la base de données n'est pas un environnement de production, le niveau de risque est faible.

Risk Approval Rules

Configurez ou personnalisez les règles d'approbation pour différents niveaux de risque.

Si une modification de base de données ne correspond à aucun niveau de risque au point de contrôle Risk Identification Rules, elle utilise le workflow d'approbation spécifié par le Default approval template for data changes dans la section Basic Configuration Item.

Par défaut, un environnement de staging est considéré comme présentant un risque faible et ne nécessite pas d'approbation.

Batch data import rules

Règles de validation applicables aux tickets Data Import.

Autorise l'importation par lot des instructions d'insertion.

Changer le modèle d'approbation par défaut

  1. Connectez-vous à DMS 5.0.

  2. Placez le pointeur sur l'icône 2023-01-28_15-57-17.png dans le coin supérieur gauche et choisissez All Features > Security and disaster recovery (DBS) > Security Rules.

    Remarque

    Si vous utilisez la console DMS en mode normal, choisissez Security and disaster recovery (DBS) > Security Rules dans la barre de navigation supérieure.

  3. Dans l'onglet Security Rules, recherchez l'ensemble de règles cible et cliquez sur Edit dans la colonne Actions.

  4. Dans le volet de navigation gauche de la page Details, cliquez sur SQL Correct.

  5. Dans la section Checkpoints, cliquez sur Basic Configuration Item.

  6. Dans la ligne Data change default approval Template, cliquez sur Edit dans la colonne Actions.

  7. Dans la boîte de dialogue Change Configuration Item, cliquez sur Switch Approval Template.

  8. Dans la boîte de dialogue Switch Approval Template, recherchez le modèle cible et cliquez sur Select dans la colonne Actions.

    Remarque

    Si les tickets ne nécessitent pas d'approbation, cliquez sur Reset to Approval-Free pour contourner l'étape d'approbation.

  9. Cliquez sur Submit.

Facteurs et actions pour le module SQL Correct

Facteurs

Les facteurs sont des variables système intégrées. Utilisez-les pour obtenir des informations contextuelles lors de la vérification des règles de sécurité, telles que le type SQL et le nombre de lignes affectées.

  • Tous les facteurs commencent par @fac. suivi du nom du facteur.

  • Chaque point de contrôle d'un module fournit des facteurs spécifiques.

Tableau 1. Liste des facteurs

Facteur

Description

@fac.env_type

Le type d'environnement. La valeur correspond à l'identifiant de l'environnement, tel que DEV ou PRODUCT. Pour plus d'informations, consultez la rubrique Instance environments.

@fac.sql_type

Le type du script SQL, tel que UPDATE ou INSERT. Pour plus d'informations, consultez la description des sous-classes SQL dans SQLConsole.

@fac.detail_type

Le type de modification de données :

  • COMMON : Modification de données normale

  • CHUNK_DML : Modification de données sans verrouillage

  • PROCEDURE : Procédure stockée

  • CRON_CLEAR_DATA : Nettoyage planifié des tables

  • BIG_FILE : Importation de données par lot

@fac.is_logic

Indique si la base de données est logique.

@fac.extra_info

Autres informations sur la modification. Ce facteur n'est pas utilisé.

@fac.is_ignore_affect_rows

Indique s'il faut ignorer la vérification.

@fac.insert_rows

Le nombre de lignes affectées par une opération d'insertion.

@fac.update_delete_rows

Le nombre de lignes affectées.

@fac.max_alter_table_size

La taille maximale de l'espace table de la table modifiée.

@fac.is_has_security_column

Indique si le script SQL contient des colonnes sensibles.

@fac.security_column_list

Liste des colonnes sensibles contenues dans le script SQL.

@fac.risk_level

Le niveau de risque détecté. Les valeurs valides sont des chaînes en minuscules, classées du plus faible au plus élevé :

  • low : risque faible

  • middle : risque moyen

  • high : risque élevé

  • highest : risque critique

@fac.risk_reason

La raison de la détection de ce niveau de risque.

@fac.table_name_list

Liste des noms de tables impliqués dans la modification SQL. Exemple :

if    
   'tb_order' in @fac.table_name_list or 'tb1_order' in @fac.table_name_list
then    
    @act.mark_risk 'high' 'High risk: Involves changes to the order table'
end

Signification : Si la modification SQL implique la table tb_order ou tb1_order, le niveau de risque est élevé.

Actions

Une action est un comportement exécuté par le système lorsque la condition if est remplie. Les exemples incluent l'interdiction de soumettre un ticket, la sélection d'un workflow, l'autorisation d'exécution et le rejet d'exécution.

  • Toutes les actions commencent par @act. suivi du nom de l'action.

  • Chaque point de contrôle d'un module fournit des actions spécifiques.

Tableau 2. Liste des actions

Action

Description

@act.allow_submit

Autorise la soumission du ticket pour exécution.

@act.allow_execute_direct

Autorise l'exécution directe dans la console SQL.

@act.forbid_execute

Interdit l'exécution.

@act.mark_risk

Marque un risque. Le premier paramètre spécifie le niveau de risque et accepte uniquement les quatre valeurs suivantes en minuscules (du plus faible au plus élevé) : low (risque faible), middle (risque moyen), high (risque élevé), highest (risque critique). Le second paramètre décrit la raison du risque. Utilisation : @act.mark_risk 'middle' 'Medium risk: production environment'.

@act.do_not_approve

Spécifie l'ID d'un modèle d'approbation. Pour plus d'informations, consultez la rubrique Set approval workflows.

@act.choose_approve_template

@act.choose_approve_template_with_reason