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.
Prérequis
Pour suivre ce tutoriel, vous avez besoin de SQL Server Management Studio et d’un accès à un serveur qui exécute SQL Server.
- Installez SQL Server Management Studio.
- Installez SQL Server 2017 Developer Edition.
Créer la base de données Finance
Dans Management Studio, ouvrez une fenêtre de requête et exécutez l'instruction suivante :
CREATE DATABASE Finance ; GO
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
- 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.
Dans la boîte de dialogue Créer une nouvelle condition , dans la zone Nom , tapez Tables de finance.
- Dans la liste Facette , sélectionnez Nom en plusieurs parties.
- Dans la boîte de dialogue Expression, dans la zone Champ, sélectionnez @Name, dans la zone Opérateur, sélectionnez Comme et dans la zone Valeur, tapez
'fintbl%'
pour forcer tous les noms de tables à commencer par les lettres fintbl. - Dans la page Description , tapez Les noms des tables de finance doivent commencer par fintbl, puis cliquez sur OK pour créer la condition.
Créer la stratégie Nom financier
- Dans l’Explorateur d’objets, cliquez avec le bouton droit sur Stratégies, puis cliquez sur Nouvelle stratégie.
Dans la boîte de dialogue Créer une nouvelle stratégie , dans la zone Nom , tapez Nom financier.
- Dans la liste Vérifier la condition , sélectionnez Tables de finance. Cette zone se trouve dans la zone Nom en plusieurs parties .
- 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.
- Sélectionnez la liste Activé . (La case Activé ne s’applique pas aux stratégies À la demande .)
- 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.
- Dans la liste Restriction sur le serveur , sélectionnez Aucune.
- Dans la page Description, ajoutez la description « Les noms de tables de la base de données Finance doivent contenir 'fintbl%' ».
- 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.
Dans la boîte de dialogue Créer une nouvelle condition , dans la zone Nom , tapez Base de données de finance.
- Dans la zone Expression, complétez l’expression de façon à inclure @Name = 'Finance', puis cliquez sur OK pour fermer la page de condition.
Remarque
Vous devrez peut-être quitter la zone Valeur pour activer le bouton OK .
Cliquez sur OK.
Créer la catégorie de stratégie Finance
- 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.
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.
Cliquez sur OK.
Abonner la base de données à la catégorie de stratégie Finance
- 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.
- Cochez la case Abonné de la catégorie Finance .
- Cliquez sur OK.
Tester l’application de la stratégie Nom financier
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.
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
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.
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.
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.
Next
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