Leçon 2 : créer et appliquer une stratégie de normes d’affectation de noms

S’applique à :SQL Server

Certains types de stratégies de la Gestion basée sur des stratégies peuvent créer des déclencheurs afin d'appliquer la future conformité avec la stratégie. Dans cette leçon, vous allez créer une stratégie qui applique une norme d'affectation de noms pour des tables. Ensuite, vous allez tester la stratégie en essayant de créer une table qui enfreint la stratégie.

Prerequisites

Pour suivre ce tutoriel, vous avez besoin de SQL Server Management Studio et d’un accès à un serveur qui exécute SQL Server.

Créer la base de données Finance

  1. Dans Management Studio, ouvrez une fenêtre de requête et exécutez l’instruction suivante :

    CREATE DATABASE Finance ;  
    GO  
    
  2. Dans l’Explorateur d’objets, cliquez sur Bases de données, puis appuyez sur la touche F5 pour actualiser la liste de bases de données.

Créer la condition Tables de finance

  1. Dans l’Explorateur d’objets, développez Gestion, Gestion de la stratégie, cliquez avec le bouton droit sur Conditions, puis cliquez sur Nouvelle condition.

New condition

  1. Dans la boîte de dialogue Créer une nouvelle condition , dans la zone Nom , tapez Tables de finance.

    1. Dans la liste Facette , sélectionnez Nom en plusieurs parties.
    2. Dans la zone Expression , dans la zone Champ , sélectionnez @Name ; dans la zone Opérateur , sélectionnez Like et, dans la zone Valeur , tapez 'fintbl%' pour forcer tous les noms de table à commencer par les lettres fintbl.
    3. Dans la page Description , tapez Les noms des tables de finance doivent commencer par fintbl, puis cliquez sur OK pour créer la condition.

    Finance tables condition

Créer la stratégie Nom financier

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur Stratégies, puis cliquez sur Nouvelle stratégie.

New policy

  1. Dans la boîte de dialogue Créer une nouvelle stratégie , dans la zone Nom , tapez Nom financier.

    1. Dans la liste Vérifier la condition , sélectionnez Tables de finance. Cette zone se trouve dans la zone Nom en plusieurs parties .
    2. Dans la zone Par rapport à est affichée une liste des objets de base de données qui pourraient appliquer cette stratégie. Cochez la case Toutes les tables.
    3. Sélectionnez la liste Activé . (La case Activé ne s’applique pas aux stratégies À la demande .)
    4. Dans la liste Mode d’évaluation , sélectionnez Sur modification : empêcher. Cela applique la stratégie en créant un déclencheur de base de données sur la base de données Finance.
    5. Dans la liste Restriction sur le serveur , sélectionnez Aucune.
    6. Dans la page Description, ajoutez la description « Les noms de tables de la base de données Finance doivent contenir 'fintbl%' ».
    7. Revenez à la page Général et dans la zone Toutes les bases de données, développez Toutes les, puis cliquez sur Nouvelle condition.

    Create new Finance Name policy

  2. Dans la boîte de dialogue Créer une nouvelle condition , dans la zone Nom , tapez Base de données de finance.

    1. Dans la zone Expression, complétez l’expression de façon à inclure @Name = 'Finance', puis cliquez sur OK pour fermer la page de condition.

    Create new 'finance database' condition

    Note

    Vous devrez peut-être quitter la zone Valeur pour activer le bouton OK .

  3. Cliquez sur OK.

Créer la catégorie de stratégie Finance

  1. Dans l’Explorateur d’objets, développez Gestion, cliquez avec le bouton droit sur Gestion de la stratégie, puis cliquez sur Gérer les catégories.

Manage categories

  1. Dans la boîte de dialogue Administration des catégories de stratégie , sous Nom, tapez Finance dans la zone vierge, puis décochez Abonnements à la base de données autorisée. Abonnements à la base de données autorisée force chaque base de données de l’instance à s’abonner aux stratégies appartenant à cette catégorie de stratégie. Dans le cadre de cette leçon, seule la base de données Finance doit s'abonner à la stratégie Nom financier.

    Manage policy categories

  2. Cliquez sur OK.

Abonner la base de données à la catégorie de stratégie Finance

  1. Dans l’Explorateur d’objets, développez Bases de données, cliquez avec le bouton droit sur Finance, pointez sur Stratégies, puis cliquez sur Catégories.

Finance policy categories

  1. Cochez la case Abonné de la catégorie Finance .

Subscribed to finance policy

  1. Cliquez sur OK.

Tester l’application de la stratégie Nom financier

  1. Dans Management Studio, ouvrez une fenêtre de requête. Exécutez les instructions suivantes qui essaient de créer une table qui enfreint la stratégie Nom financier . La table enfreint la stratégie car le nom de table ne commence pas par les lettres fintbl.

    USE Finance ;  
    GO  
    CREATE TABLE NewTable  
    (Col1 int) ;  
    GO    
    

    Remarquez que la stratégie empêche la création de la table et retourne un message d'information qui indique le nom de la stratégie.

  Policy 'Finance Name' has been violated by 'SQLSERVER:\SQL\SQL\SQL2017\Databases\Finance\Tables\dbo.NewTable'.
  This transaction will be rolled back.
  Policy condition: '@Name LIKE 'fintbl%''
  Policy description: 'Tables names in the Finance database must contain 'fintbl%''.
  Additional help: '' : ''
  Statement: 'CREATE TABLE NewTable  
      (Col1 int)'.
  Msg 515, Level 16, State 2, Procedure msdb.sys.sp_syspolicy_execute_policy, Line 69 [Batch Start Line 2]
  Cannot insert the value NULL into column 'target_query_expression', table 'msdb.dbo.syspolicy_policy_execution_history_details_internal'; column does not allow nulls. INSERT fails.
  The statement has been terminated.
  1. Pour fournir un nom valide, modifiez le code comme suit et réexécutez l'instruction.

    USE Finance ;  
    GO  
    CREATE TABLE fintblNewTable  
    (Col1 int) ;  
    GO    
    

    Cette fois-ci, la table est créée.

Appliquer la stratégie à tout le serveur

  1. Actuellement, seule la base de données Finance est abonnée à la catégorie de stratégie Finance. Dans de nombreux cas, il est plus facile d'appliquer la catégorie de stratégie à l'ensemble du serveur. Dans l’Explorateur d’objets, développez Gestion, cliquez avec le bouton droit sur Gestion de la stratégie, puis cliquez sur Gérer les catégories.

  2. Dans la boîte de dialogue Administration des catégories de stratégie , recherchez la catégorie Finance et cochez la case Abonnements à la base de données autorisée pour la catégorie Finance.

  3. Cliquez sur OK. Désormais, la catégorie Finance s’applique à toutes les bases de données, mais la condition que vous avez créée restreint la stratégie Nom financier à la base de données Finance. Cela démontre la manière dont vous pouvez utiliser des combinaisons de conditions complexes pour cibler des stratégies pour une application correcte sur de nombreux serveurs.

Résumé

Ce didacticiel vous a montré comment créer des conditions, des stratégies et des groupes de stratégies de la Gestion basée sur des stratégies et comment appliquer des filtres et vérifier la conformité des cibles de la Gestion basée sur des stratégies.

Suivant

Ce didacticiel est terminé. Pour revenir au début, visitez Tutoriel : Administration de serveurs à l’aide de la Gestion basée sur des stratégies.

Pour obtenir la liste des didacticiels, consultez Didacticiels pour SQL Server 2016.

Voir aussi

Administrer des serveurs à l'aide de la Gestion basée sur des stratégies