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

La Gestion basée sur des stratégies est un système permettant de gérer une ou plusieurs instances de SQL Server 2008. Lorsque les administrateurs de stratégie SQL Server utilisent la Gestion basée sur des stratégies, ils utilisent SQL Server Management Studio pour créer des stratégies afin de gérer des entités sur le serveur, telles que l'instance de SQL Server, les bases de données ou les autres objets SQL Server.

La Gestion basée sur des stratégies a trois composants :

  • Gestion de la stratégie

    Les administrateurs de stratégie créent des stratégies.

  • Administration explicite

    Les administrateurs sélectionnent une ou plusieurs cibles gérées et vérifient de manière explicite que celles-ci sont conformes à une stratégie spécifique, ou rendent de manière explicite les cibles conformes à une stratégie.

  • Modes d'évaluation

    Il existe quatre modes d'évaluation, dont trois peuvent être automatisés :

    • À la demande. Ce mode évalue la stratégie lorsqu'elle est spécifiée directement par l'utilisateur.

    • Sur modification - Empêcher. Ce mode automatisé utilise des déclencheurs DDL pour empêcher les violations de stratégie.

      Important

      Si l'option de configuration serveur nested triggers est désactivée, le mode Sur modification : empêcher ne fonctionnera pas correctement. La Gestion basée sur des stratégies repose sur des déclencheurs DDL pour détecter et restaurer les opérations DDL qui ne sont pas conformes aux stratégies qui utilisent ce mode d'évaluation. Si les déclencheurs DDL de la Gestion basée sur des stratégies est supprimée ou si les déclencheurs imbriqués sont désactivés, ce mode d'évaluation échouera ou se comportera de façon inattendue.

    • Sur modification : Journal uniquement. Ce mode automatisé utilise la notification d'événements pour évaluer une stratégie lorsqu'une modification pertinente est apportée.

    • Selon planification. Ce mode automatisé utilise un travail de l'agent SQL Server pour évaluer périodiquement une stratégie.

    Lorsque les stratégies automatisées ne sont pas activées, la Gestion basée sur des stratégies n'affecte pas les performances système.

    Notes

    Lorsque le système calcule le jeu d'objets pour une stratégie, les objets système sont exclus pas défaut. Par exemple, si le jeu d'objets de la stratégie se réfère à toutes les tables, la stratégie n'appliquera pas les tables système. Si les utilisateurs souhaitent évaluer une stratégie par rapport aux objets système, ils peuvent ajouter explicitement les objets système au jeu d'objets. Cependant, bien que toutes les stratégies soient prises en charge pour le mode d'évaluation vérification selon la planification, pour des raisons de performances, une partie de celles avec des jeux d'objets arbitraires ne seront pas prises en charge pour le mode d'évaluation vérification sur modification. Pour plus d'informations, consultez https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx

Termes et concepts de la Gestion basée sur des stratégies

  • Cible gérée de la Gestion basée sur des stratégies
    Entités gérées par la Gestion basée sur des stratégies, telles qu'une instance du moteur de base de données SQL Server, une base de données, une table ou un index. Toutes les cibles dans une instance de serveur forment une hiérarchie cible. Un jeu de cibles est l'ensemble des cibles qui résulte de l'application d'un jeu de filtres cibles à la hiérarchie cible, par exemple toutes les tables de la base de données détenues par le schéma HumanResources.

  • Facette de la Gestion basée sur des stratégies
    Ensemble de propriétés logiques qui modèlent le comportement ou les caractéristiques de certains types de cibles gérées. Le nombre et les caractéristiques des propriétés sont intégrés à la facette et peuvent être ajoutés ou supprimés uniquement par le créateur de la facette. Un type de cible peut implémenter une ou plusieurs facettes de gestion et une facette de gestion peut être implémentée par un ou plusieurs types de cibles. Certaines propriétés d'une facette peuvent s'appliquer uniquement à une version spécifique. Par exemple, la propriété Messagerie de base de données de la facette Configuration de la surface d'exposition s'applique seulement à SQL Server 2005 et versions ultérieures.

  • Condition de la Gestion basée sur des stratégies
    Expression booléenne qui spécifie un ensemble d'états autorisés pour une cible gérée par la Gestion basée sur des stratégies en ce qui concerne une facette de gestion.

  • Stratégie de la Gestion basée sur des stratégies
    Condition de la Gestion basée sur des stratégies et comportement attendu, par exemple mode d'évaluation, filtres de cibles et planification. Une stratégie ne peut contenir qu'une seule condition. Les stratégies peuvent être activées ou désactivées.

  • Catégorie de la stratégie de la Gestion basée sur des stratégies
    Catégorie définie par l'utilisateur afin d'aider à gérer les stratégies. Les utilisateurs peuvent classifier les stratégies en différentes catégories de stratégies. Une stratégie appartient à une seule catégorie de stratégie. Les catégories de stratégies s'appliquent aux bases de données et aux serveurs. Au niveau de la base de données, les conditions suivantes s'appliquent :

    • Les propriétaires de base de données peuvent abonner une base de données à un jeu de catégories de stratégies.

    • Seules les stratégies de ses catégories abonnées peuvent gouverner une base de données.

    • Toutes les bases de données sont abonnées implicitement à la catégorie de stratégie par défaut.

    Au niveau du serveur, les catégories de stratégies peuvent être appliquées à toutes les bases de données.

  • Stratégie actuelle
    Les stratégies actuelles d'une cible sont celles qui gouvernent cette cible. Une stratégie est actuelle en ce qui concerne une cible uniquement si toutes les conditions suivantes sont remplies :

    • La stratégie est activée.

    • La cible appartient au jeu de cibles de la stratégie.

    • La cible ou l'un de ses ancêtres s'abonne au groupe de stratégies qui contient cette stratégie.

Exemples de problèmes résolus à l'aide de la Gestion basée sur des stratégies

La Gestion basée sur des stratégies serait utile pour résoudre les problèmes présentés dans les scénarios suivants :

  • Une stratégie d'entreprise interdit l'activation de la Messagerie de base de données ou de SQL Mail. Une stratégie est créée afin de vérifier l'état du serveur pour ces deux fonctionnalités. Un administrateur compare l'état du serveur à la stratégie. Si l'état du serveur est hors de conformité, l'administrateur choisit le mode Configurer et la stratégie met l'état du serveur en conformité.

  • La base de données AdventureWorks2008R2 a une convention d'affectation des noms qui requiert que toutes les procédures stockées commencent par les lettres AW_. Une stratégie est créée afin d'appliquer cette stratégie. Un administrateur teste cette stratégie et reçoit une liste des procédures stockées qui sont hors de conformité. Si les futures procédures stockées ne sont pas conformes à cette convention d'affectation des noms, les instructions de création des procédures stockées échouent.

Modes d'évaluation autorisés

Les modes d'évaluation de la stratégie sont déterminés par les caractéristiques de la facette de la Gestion basée sur des stratégies qui est utilisée par la stratégie. Toutes les facettes prennent en charge les modes À la demande et Selon la planification. Les facettes prennent en charge le mode Sur modification : journal uniquement si la modification de l'état de facette peut être capturée par certains événements. Elles prennent en charge le mode Sur modification : empêcher s'il y a prise en charge transactionnelle des instructions DDL qui modifient l'état de facette. Les stratégies automatisées avec l'un de ces trois modes d'exécution peuvent être activées et désactivées.

Dans SQL Server Management Studio, la boîte de dialogue Évaluer les stratégies fournit deux options que vous pouvez utiliser pour exécuter une stratégie :

  • Évaluer
    Cette option permet d'évaluer les stratégies par rapport aux cibles sélectionnées.

  • Appliquer
    Cette option vous permet d'appliquer des modifications aux cibles non conformes aux stratégies. Certaines cibles ne peuvent pas être configurées au moyen de la Gestion basée sur des stratégies. Par exemple, si vous évaluez le fait que des fichiers de sauvegarde ou de données existent sur des périphériques distincts, la Gestion basée sur des stratégies peut détecter les violations de cette condition. Toutefois, vous ne pouvez pas appliquer des modifications via la Gestion basée sur des stratégies de manière à assurer la conformité à la stratégie.

Gestion de la stratégie

Les stratégies sont créées et gérées à l'aide de Management Studio. Le processus comporte les étapes suivantes :

  1. Sélectionnez une facette de la Gestion basée sur des stratégies qui contient les propriétés à configurer.

  2. Définissez une condition qui spécifie l'état d'une facette de gestion.

  3. Définissez une stratégie qui contient la condition, des conditions supplémentaires qui filtrent les jeux de cibles et le mode d'évaluation.

  4. Vérifiez si une instance de SQL Server est conforme à la stratégie.

Pour les stratégies qui échouent, l'Explorateur d'objets indique un état critique sous forme d'icône rouge à côté de la cible et des nœuds situés plus hauts dans l'arborescence de l'Explorateur d'objets.

Stockage de stratégie

Les stratégies sont stockées dans la base de données msdb. Après la modification d'une stratégie ou d'une condition, vous devez sauvegarder msdb. Pour plus d'informations, consultez Considérations relatives à la sauvegarde des bases de données model et msdb.

SQL Server 2008 est fourni avec des stratégies qui peuvent être utilisées pour contrôler une instance de SQL Server. Par défaut, ces stratégies ne sont pas installées sur le moteur de base de données ; cependant, elles peuvent être importées à partir de l'emplacement d'installation par défaut C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033. Pour plus d'informations, consultez Procédure : exporter et importer une stratégie de la Gestion basée sur des stratégies.

Vous pouvez créer directement des stratégies à l'aide du menu Fichier/Nouveau, puis les enregistrer dans un fichier. Cela vous permet de créer des stratégies lorsque vous n'êtes pas connecté à une instance du moteur de base de données.

L'historique de stratégie pour les stratégies évaluées dans l'instance actuelle du Moteur de base de données est conservé dans les tables système msdb. L'historique de stratégie pour les stratégies appliquées à d'autres instances du moteur de base de données ou appliquées à Reporting Services ou Analysis Services n'est pas conservé. Pour plus d'informations, consultez Résolution des problèmes de stratégies de la Gestion basée sur des stratégies.

Configuration d'alertes afin d'informer les administrateurs de stratégie en cas d'échec de stratégie

Lorsque des stratégies de Gestion basée sur des stratégies sont exécutées dans l'un des trois modes d'évaluation automatisés, en cas de violation de stratégie, un message est écrit dans le journal des événements. Pour être informé de l'écriture de ce message dans le journal des événements, vous pouvez créer une alerte afin de détecter le message et d'exécuter une action. L'alerte doit détecter les messages comme indiqué dans le tableau suivant.

Mode d'exécution

Numéro de message

Sur modification - Empêcher

(si automatique)

34050

Sur modification - Empêcher

(si À la demande)

34051

Selon planification

34052

Sur modification

34053

Pour configurer une alerte en réponse aux messages d'erreur de la Gestion basée sur des stratégies, consultez les rubriques suivantes :

Considérations supplémentaires relatives aux alertes

Tenez compte des considérations supplémentaires relatives aux alertes :

  • Des alertes sont déclenchées uniquement pour les stratégies activées. Les stratégies À la demande ne pouvant pas être activées, aucune alerte n'est déclenchée pour les stratégies exécutées sur la demande.

  • Si l'action que vous souhaitez effectuer inclut l'envoi d'un message électronique, vous devez configurer un compte de messagerie. Nous vous recommandons d'utiliser la Messagerie de base de données. Pour plus d'informations sur la manière de configurer la Messagerie de base de données, consultez Procédure : créer des comptes de messagerie de base de données (Transact-SQL).

  • Sécurité des alertes :

    Lorsque des stratégies sont évaluées à la demande, elles s'exécutent dans le contexte de sécurité de l'utilisateur. Pour écrire dans le journal des erreurs, l'utilisateur doit posséder l'autorisation ALTER TRACE ou être membre du rôle serveur fixe sysadmin. Les stratégies évaluées par un utilisateur qui dispose de moins de privilèges n'écrivent pas dans le journal des événements et ne déclenchent pas d'alerte.

    Les modes d'exécution automatisés s'exécutent comme membre du rôle sysadmin. Cela permet à la stratégie d'écrire dans le journal des erreurs et de déclencher une alerte.

Sécurité

L'administration de la Gestion basée sur des stratégies requiert l'appartenance au rôle PolicyAdministratorRole dans la base de données msdb. Ce rôle dispose d'un contrôle complet sur toutes les stratégies sur le système. Cela comprend la création et la modification de stratégies et de conditions, ainsi que l'activation et la désactivation de stratégies.

Remarque relative à la sécuritéRemarque relative à la sécurité

Élévation possible des informations d'identification : les utilisateurs du rôle PolicyAdministratorRole peuvent créer des déclencheurs de serveur et planifier des exécutions de stratégie qui peuvent affecter le fonctionnement de l'instance du Moteur de base de données. Par exemple, le rôle PolicyAdministratorRole peut créer une stratégie qui peut empêcher la création de la plupart des objets dans le Moteur de base de données. Étant donné cette possible élévation des informations d'identification, le rôle PolicyAdministratorRole doit être accordé uniquement aux utilisateurs de confiance autorisés à contrôler la configuration du Moteur de base de données.

Les principes de sécurité suivants sont applicables :

  • Un administrateur système ou propriétaire de base de données peut abonner une base de données à une stratégie ou à un groupe de stratégies.

  • Les membres du rôle PolicyAdministratorRole peuvent activer ou désactiver des stratégies.

  • Les membres du rôle PolicyAdministratorRole peuvent créer des stratégies qu'ils n'ont pas l'autorisation d'exécuter ad hoc, mais qui peuvent réussir lorsqu'elles sont exécutées par d'autres utilisateurs disposant d'une autorisation suffisante.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Élévation possible des informations d'identification : les utilisateurs du rôle PolicyAdministratorRole peuvent créer des stratégies contenant une condition qui utilise les fonctions ExecuteSql ou ExecuteWql. Si un utilisateur qui dispose d'autorisations sysadmin exécute par la suite la stratégie, l'instruction Transact-SQL fournie par l'administrateur de la stratégie est exécutée avec l'autorisation sysadmin de l'utilisateur qui l'exécute.

  • L'exécution de stratégie ad hoc se produit dans le contexte de sécurité de l'utilisateur.

  • Les stratégies comportant le mode d'évaluation Selon la planification utilisent les travaux de l'Agent SQL Server qui sont détenus par le nom de connexion sa.

Considérations relatives à l'utilisation de la Gestion basée sur des stratégies

Sachez que les stratégies peuvent affecter le fonctionnement des fonctionnalités SQL Server. Par exemple, la capture des données modifiées et la réplication transactionnelle utilisent toutes deux la table systranschemas, qui n'a pas d'index. Si vous activez une stratégie stipulant que toutes les tables doivent avoir un index, la mise en conformité à cette stratégie entraînera l'échec de ces fonctionnalités.