Cette rubrique décrit les configurations de base, les points de contrôle, les facteurs, les actions et la bibliothèque de modèles pour la conception de schémas. Elle explique également comment modifier le modèle d'approbation par défaut et ajouter de nouvelles règles.
Informations générales
Un ticket de conception de schéma implique généralement plusieurs instances et suit un processus standard : concevoir le schéma dans un environnement de test, puis le publier dans un environnement de production. Par conséquent, les basic configurations, les design rules et les risk identification rules au sein des règles de sécurité pour la conception de schémas utilisent les règles de sécurité associées à la change baseline database (une base de données dans l'environnement de test).
Les Design rules incluent les options Save and Edit - Check Table Header, Save and Edit - Check Field et Save and Edit - Check Index. Sur la page de modification des règles de sécurité, ces trois points de contrôle apparaissent sous forme d'onglets dans la section Points de contrôle.
Les Risk identification rules comprennent les options Control Risks of Creating Tables, Control Risks of Modifying Fields, Control Risks of Modifying Indexes et Control Risks of SQL Executions. Elles apparaissent également sous forme d'onglets dans la section Points de contrôle.
Le processus d'approbation, en revanche, utilise les règles de sécurité de la base de données dans l'environnement de production. Par exemple, si un ticket de conception de schéma est publié sur la base de données B, le système applique les règles de sécurité de l'instance B.
Configurations de base
La conception de schémas comporte plusieurs configurations de base :
-
Activer la publication asymétrique : par défaut, les modifications de conception de schéma ne peuvent être publiées que de manière symétrique, ce qui signifie que les modifications apportées à une table ne peuvent être publiées que vers une table portant le même nom dans une autre base de données. Une fois la publication asymétrique activée, vous pouvez publier les modifications vers n'importe quelle table cible, quel que soit son nom.
AvertissementCette fonctionnalité présente des risques importants. Activez-la avec prudence et uniquement pour des scénarios spécifiques.
-
Processus de développement : il s'agit d'une configuration clé dans les règles de sécurité de conception de schémas. Il définit toutes les étapes du cycle de vie d'un ticket de conception de schéma. Le tableau suivant décrit ces options.
Paramètre
Description
Step
Comprend les nœuds Design et Publish.
-
Nœud de conception : le nœud de conception est défini par défaut et ne peut pas être supprimé. Il détermine l'environnement dans lequel la tâche de modification de schéma est conçue.
-
Nœud de publication : une fois la conception terminée, le processus passe à l'étape de publication pour appliquer les modifications. Vous pouvez ajouter plusieurs nœuds de publication.
Node Name
Un nom de nœud personnalisé, d'une longueur maximale de 10 caractères.
Database Environment
L'environnement dans lequel le nœud s'exécute.
Execution Strategy
-
Immediately : la tâche est exécutée immédiatement après son approbation.
-
Timed : vous pouvez spécifier une heure pour publier la tâche. Si la tâche est approuvée avant l'heure spécifiée, elle est exécutée à ce moment-là. Sinon, la tâche est annulée.
Can be Rolled Back
Indique si la tâche de publication peut être restaurée vers le nœud Design.
Can be Skipped
Indique si l'étape actuelle peut être ignorée.
Anchor
Marque le point où la modification du ticket est gelée. Une fois l'étape ancrée terminée avec succès, le schéma ne peut plus être modifié et le statut du ticket passe à Published.
Operation
Vous pouvez supprimer un nœud Publish selon vos besoins.
-
Configuration du type de champ : configure les types de données autorisés pour l'option Add Field.
Configuration du type d'index : spécifie les types de données autorisés dans l'option Add Index.
Modèle de création de table : configure un modèle pour la création de tables. Les nouvelles tables chargent ce modèle par défaut. Ce modèle est facultatif et peut être modifié lors de la création de la table.
Interdire la modification des types de données des champs d'origine : interdit la modification des types de données des champs existants lors de la modification d'une table.
Interdire la suppression des champs d'origine : indique s'il faut interdire la suppression des champs existants lors de la modification d'une table. Il s'agit d'une opération à haut risque, nous vous recommandons donc d'activer cette option.
Interdire le renommage des champs d'origine : indique s'il faut interdire le renommage des champs existants lors de la modification d'une table. Le renommage des champs existants est une opération à haut risque. Nous vous recommandons d'activer cette option.
Configuration des autorisations de jeu de caractères de table : configure les jeux de caractères autorisés pour les nouvelles tables, tels que utf8 et utf8mb4.
Modèle d'approbation par défaut pour la conception de schémas : si aucune règle d'approbation n'est configurée pour le point de contrôle Approval Rule Check, les tickets de conception de schémas utilisent ce modèle d'approbation par défaut. Vous pouvez modifier le processus d'approbation du modèle par défaut en utilisant la fonctionnalité Switch Approval Template. Pour plus d'informations, consultez la section Modifier le modèle d'approbation par défaut.
Faire avancer automatiquement le ticket vers l'état fermé lors de la publication : si cette option est activée, après que le nœud contenant l'anchor dans le processus de développement a exécuté avec succès une modification, le système fait automatiquement avancer le ticket vers l'état fermé. (L'ancrage doit se trouver sur le dernier nœud de publication du processus de développement.)
Points de contrôle
La conception de schémas implique deux processus :
-
Processus d'enregistrement et de modification : ce processus correspond aux trois points de contrôle suivants, qui vérifient séquentiellement les spécifications des en-têtes de table, des champs et des index.
Save and Edit - Check Table Header
Save and Edit - Check Field
Save and Edit - Check Index
-
Processus d'exécution des modifications : ce processus correspond aux cinq points de contrôle suivants. Les quatre premiers identifient les risques liés aux modifications DDL (Data Definition Language), et le dernier spécifie le processus d'approbation pour chaque risque.
Control Risks of Creating Tables
Control Risks of Modifying Fields
Control Risks of Modifying Indexes
Control Risks of SQL Executions
Approval Rule Check
Ces deux processus disposent de nombreux modèles de règles de sécurité intégrés que vous pouvez utiliser directement ou personnaliser. Pour plus d'informations, consultez la section Ajouter une nouvelle règle.
Facteurs et actions
-
Facteur : un facteur est une variable système intégrée qui fournit des informations contextuelles pour les vérifications des règles de sécurité, telles que le type SQL ou le nombre de lignes affectées. Tous les facteurs commencent par
@fac.suivi du nom du facteur. Chaque module propose différents facteurs pour différents points de contrôle. Le tableau suivant décrit les facteurs disponibles pour la schema change.Facteur
Description
@fac.table_kind
Le type de table en cours de modification. Valeurs valides :
-
new : une nouvelle table.
-
old : une table existante.
@fac.column_kind
Le type de champ dans le schéma de la table. Valeurs valides :
-
new : un nouveau champ.
-
old : un champ existant.
@fac.xxxx_old
Récupère la valeur d'origine d'un champ ou d'un index à des fins de comparaison.
@fac.column_is_primary
Indique si un champ fait partie de la clé primaire. Valeurs valides :
-
true : le champ se trouve dans la clé primaire.
-
false : le champ ne se trouve pas dans la clé primaire.
@fac.column_type_support_default
Indique si une valeur par défaut peut être définie pour le type de données du champ. Valeurs valides :
-
true : pris en charge.
-
false : non pris en charge.
Par exemple, le type de données
CHARprend en charge une valeur par défaut, mais le type de donnéesTEXTne le permet pas.@fac.index_kind
Le type d'index dans le schéma de la table. Valeurs valides :
-
new : un nouvel index.
-
old : un index existant.
@fac.index_column_count
Le nombre de champs dans l'index.
@fac.change_type
Le type de modification de champ ou d'index identifié par la base de données où l'instruction DDL est exécutée. Valeurs valides :
-
add
-
modify
-
delete
@fac.altered_table_size
La taille de la table modifiée, en Mo.
@fac.online_execute
Indique si la modification peut être exécutée en ligne. Valeurs valides :
-
true : ONLINE
-
false : NOT ONLINE
@fac.change_risk_level
Le niveau de risque de la modification. Valeurs valides :
-
high : risque élevé
-
medium : risque moyen
-
low : faible risque
@fac.env_type
Le type d'environnement, qui est l'identifiant de l'environnement, tel que
DEVouPRODUCT. Pour plus d'informations sur les types d'environnement, consultez la section Modifier le type d'environnement d'une instance. -
-
Action : une action est un comportement que le système exécute une fois qu'une condition
ifest remplie, comme l'interdiction de soumettre un ticket, la sélection d'un workflow, l'autorisation d'une exécution ou le refus d'une exécution. Ces actions définissent l'objectif principal d'une règle de sécurité. Toutes les actions commencent par@act.suivi du nom de l'action. Chaque module propose différentes actions pour différents points de contrôle. Le tableau suivant décrit les actions disponibles pour la schema design.Actions
Description
@act.block_submit
Bloque la soumission et affiche un message d'erreur à l'étape d'enregistrement de la table. Utilisation :
@act.block_submit 'Raison du blocage'.@act.show_warning
Utilisé lors de l'étape d'enregistrement de la table. Affiche un message d'avertissement sans bloquer la soumission. Utilisation :
@act.show_warning 'Contenu de l'avertissement'.@act.mark_middle_risk
Utilisé lors de l'étape d'identification des risques. Marque la modification comme présentant un risque moyen. Utilisation :
@act.mark_middle_risk 'Raison'.@act.mark_high_risk
Utilisé lors de l'étape d'identification des risques. Marque la modification comme présentant un risque élevé. Utilisation :
@act.mark_high_risk 'Raison'.@act.forbid_submit_publish
Utilisé lors de l'étape de configuration du processus d'approbation. Empêche l'exécution de la modification. Utilisation :
@act.forbid_submit_publish 'Raison'.@act.do_not_approve
Spécifie l'ID d'un modèle d'approbation. Pour plus d'informations, consultez la section Définir le processus d'approbation.
@act.choose_approve_template
@act.choose_approve_template_with_reason
Bibliothèque de modèles
Security Rules propose de nombreux modèles de règles que vous pouvez activer directement ou modifier avant activation. Le tableau suivant répertorie les modèles pour la schema change.
|
Point de contrôle |
Modèle |
|
Save and Edit - Check Table Header |
Interdire l'utilisation de mots-clés comme nom de table pour une nouvelle table |
|
Limiter la longueur du nom d'une nouvelle table |
|
|
Exiger des commentaires pour une nouvelle table |
|
|
Exiger que le nom d'une nouvelle table soit en minuscules |
|
|
Exiger une clé primaire (PK) pour une nouvelle table |
|
|
Exiger une clé unique (PK/UK) pour une nouvelle table |
|
|
Vérifier le nombre d'index et avertir l'utilisateur si ce nombre est excessif |
|
|
Vérifier l'existence de certains champs pour une nouvelle table |
|
|
Save and Edit - Check Field |
Interdire l'utilisation de mots-clés comme nom de champ pour un nouveau champ |
|
Exiger des commentaires pour un nouveau champ |
|
|
Spécifier la sensibilité à la casse pour le nom d'un nouveau champ |
|
|
Exiger une valeur par défaut lors de l'ajout d'un champ non nullable à une table existante |
|
|
Exiger une valeur par défaut lors du passage d'un champ existant de nullable à non nullable |
|
|
Exiger qu'un nouveau champ de clé primaire soit de type entier |
|
|
Exiger que tous les champs d'une nouvelle table soient non nullables |
|
|
Limiter la longueur d'un nouveau champ de type CHAR |
|
|
Limiter la longueur d'un nouveau champ de type VARCHAR |
|
|
Save and Edit - Check Index |
Interdire l'utilisation de mots-clés comme nom d'index pour un nouvel index |
|
Spécifier la sensibilité à la casse pour le nom d'un nouvel index |
|
|
Limiter le format du nom d'un nouvel index UNIQUE |
|
|
Limiter le format du nom d'un nouvel index NORMAL |
|
|
Limiter le format du nom d'un nouvel index FULLTEXT |
|
|
Limiter le format du nom d'un nouvel index SPATIAL |
|
|
Limiter le nombre de nouveaux champs de clé primaire |
|
|
Limiter le nombre de nouveaux champs d'index |
|
|
Control Risks of Creating Tables |
Contrôler le nombre de shards pour une table logique |
|
Contrôler la clé primaire d'une table |
|
|
Contrôler le nombre total d'index dans une table |
|
|
Control Risks of Modifying Fields |
Contrôler la suppression de champs |
|
Contrôler le type de données d'un nouveau champ |
|
|
Contrôler le renommage des champs |
|
|
Contrôler la modification du type de données d'un champ |
|
|
Control Risks of Modifying Indexes |
Contrôler la suppression de la clé primaire |
|
Contrôler la suppression d'index |
|
|
Contrôler le changement d'une clé primaire vers un index |
|
|
Contrôler les modifications des colonnes dans une clé primaire |
|
|
Contrôler la modification d'un index commun |
|
|
Contrôler le type d'un nouvel index |
|
|
Control Risks of SQL Executions |
Contrôler les risques liés aux instances principales |
|
Contrôler le moteur de stockage d'une table |
|
|
Contrôler les risques de verrouillage de table ou de modifications de schéma sur de grandes tables |
|
|
Approval Rule Check |
Interdire l'application de toute modification DDL à une base de données |
|
Interdire l'application de toute modification DDL à une base de données de production |
|
|
Configurer les modifications DDL sans approbation pour une base de données de test |
|
|
Définir des règles d'approbation basées sur les niveaux de risque pour l'environnement de production |
Modifier le modèle d'approbation par défaut
Connectez-vous à DMS 5.0.
-
Placez le pointeur sur l'icône
dans le coin supérieur gauche et choisissez .RemarqueSi vous utilisez la console DMS en mode normal, choisissez dans la barre de navigation supérieure.
Sur la page Security Rules, recherchez l'ensemble de règles cible et cliquez sur Edit dans la colonne Actions.
Dans le volet de navigation de gauche de la page Details, cliquez sur Schema Design.
Sous l'onglet Schema Design, cliquez sur Basic Configurations.
Recherchez l'option Default Approval Template for Schema Design et cliquez sur Edit dans la colonne Actions.
Dans la boîte de dialogue Edit Configuration Item, cliquez sur Switch Approval Template.
-
Recherchez le modèle cible par son Template Name et cliquez sur Select dans la colonne Actions.
RemarqueVous pouvez également cliquer sur Reset to No Approval pour permettre aux tickets d'ignorer le processus d'approbation.
Cliquez sur Submit.
Ajouter une nouvelle règle
Connectez-vous à DMS 5.0.
-
Placez le pointeur sur l'icône
dans le coin supérieur gauche et choisissez .RemarqueSi vous utilisez la console DMS en mode normal, choisissez dans la barre de navigation supérieure.
Sur la page Security Rules, recherchez l'ensemble de règles cible et cliquez sur Edit dans la colonne Actions.
Dans le volet de navigation de gauche de la page Details, cliquez sur Schema Design.
Sous l'onglet Schema Design, cliquez sur Add Rule à droite de l'option Actions.
-
Dans la boîte de dialogue Add Rule - Schema Design, configurez les paramètres suivants.
Paramètre
Description
Checkpoint (obligatoire)
Sélectionnez un point de contrôle pour la nouvelle règle. La conception de schémas propose plusieurs points de contrôle. Pour plus d'informations, consultez la section Points de contrôle.
Template Library (facultatif)
La bibliothèque de modèles propose de nombreux modèles de règles. Après avoir sélectionné un Checkpoint, vous pouvez charger un modèle de règle depuis la Template Library. Pour la liste des modèles disponibles, consultez la section Bibliothèque de modèles.
Rule Name (obligatoire)
Un nom personnalisé pour la règle. Si vous sélectionnez un modèle de règle dans la Template Library, ce champ est automatiquement renseigné.
Rule DSL (obligatoire)
Saisissez le DSL de la règle. Pour plus d'informations sur la syntaxe DSL, consultez la documentation. (Ce champ est automatiquement renseigné si vous sélectionnez un modèle de règle dans la Template Library.)
Cliquez sur Submit.
Par défaut, la nouvelle règle est à l'état Disabled. Recherchez la règle et cliquez sur Enable dans la colonne Actions.
Dans la boîte de dialogue qui s'affiche, cliquez sur OK.