Gestion basée sur des stratégies (Policy-Based Management)
Avez-vous déjà eu à gérer plusieurs systèmes SQL Server et souhaité pouvoir vérifier les paramètres de manière centralisée, simple, cohérente et peut-être même automatisée ? A partir de la version SQL Server 2008, les administrateurs de bases de données ont cette capacité, grâce à l'introduction d'une fonctionnalité appelée Gestion basée sur des stratégies ou Policy-Based Management.
Qu'est-ce que la gestion basée sur des stratégies ?
La gestion basée sur les stratégies est une nouvelle fonctionnalité de SQL Server 2008 permettant de définir et de mettre en oeuvre des stratégies dans votre infrastructure SQL Server. La gestion basée sur des stratégies fonctionne de manière similaire aux stratégies de groupe d'Active Directory, une fonctionnalité des systèmes d'exploitation basés sur Windows NT. La stratégie de groupe offre une gestion et une configuration centralisées des systèmes, des applications et des utilisateurs via des stratégies contrôlées par l'administrateur ou le système, pouvant ensuite être appliquées à différents niveaux de la structure de répertoires gérée.
La gestion basée sur les stratégies adhère aux mêmes principes que la stratégie de groupe, en ce sens que vous pouvez appliquer une stratégie à une cible (telle qu'une base de données, une table ou une STORED PROCEDURE) et évaluer si la cible est conforme à votre stratégie. Si votre cible n'adhère pas à votre stratégie, vous pouvez soit imposer la conformité à cette stratégie, soit déclencher une alerte pour informer un administrateur de la violation de la stratégie. Vous pouvez configurer votre stratégie pour refuser activement toute action non conforme, ou choisir de simplement consigner ces actions, afin qu'un administrateur puisse les traiter plus tard.
La gestion basée sur des stratégies est un système permettant de gérer une ou plusieurs instances de SQL Server 2008. Grâce à la création, la gestion et le déploiement de stratégies, vous pouvez appliquer vos propres normes personnalisées à l'ensemble d'une entreprise SQL Server.
Pourquoi utiliser la gestion basée sur des stratégies ?
Les entreprises tentent plus que jamais de réduire leurs coûts. Une solution courante à court terme consiste à réduire les effectifs et à tirer le meilleur parti de la main-d'oeuvre existante. Cela signifie que de nombreux travailleurs sont obligés d'équilibrer de plus en plus de responsabilités. Une autre tendance affectant les administrateurs de bases de données (DBA) est l'évolutivité croissante du matériel. Ainsi, les administrateurs de bases de données gérant auparavant dix bases de données peuvent désormais en gérer des centaines. Plus que jamais, les administrateurs de bases de données ont besoin d'un moyen de gérer leurs serveurs sans avoir à les garder individuellement.
En tant que DBA, il vous incombe de protéger l'intégrité de l'environnement que vous gérez en vous assurant que des normes sont en place. Par normes, nous entendons les règles de normalisation que vous, en tant que DBA, créez pour appliquer dans votre environnement. Par exemple, vous pouvez créer une norme stipulant que toute base de données en mode de récupération complète doit disposer de sauvegardes du journal des transactions toutes les heures. Au lieu de simplement avoir la norme sur papier et d'espérer que cette pratique soit suivie, vous pouvez utiliser la gestion basée sur des stratégies comme moyen de surveiller et d'appliquer de manière proactive cela en tant que stratégie dans votre environnement SQL Server. L'utilisation de la gestion basée sur des stratégies vous permet de gérer par intention.
Dans les versions précédentes à SQL Server 2008, afin de savoir quand votre dernière sauvegarde a eu lieu, vous deviez vous connecter manuellement à chaque instance et vérifier chaque base de données individuellement pour ses dates de sauvegarde. Une instance peut contenir des dizaines, voire des centaines de bases de données. C'est beaucoup de travail manuel ! À l'aide d'une politique, vous pouvez vérifier instantanément les dernières dates de sauvegarde de chaque base de données sur une instance ou, mieux encore, de chaque base de données sur chaque serveur, en quelques clics. Imaginez un instant : votre routine de vérification des sauvegardes du matin, prenant auparavant une heure, est maintenant réduite à quelques minutes ! C'est un beau retour sur investissement.
En tant qu'administrateur de base de données, vous devez également vous protéger contre les modifications de configuration non autorisées sur votre système. Par exemple, supposons que vous ayez configuré un paramètre avancé tel que le degré maximum de parallélisme sur un serveur. Un jour, un DBA junior ou un fournisseur décide de revenir à la valeur par défaut de 0. Avez-vous un moyen de savoir quand quelqu'un fait cela ? En règle générale, vous ne serez pas au courant de ce changement tant que les utilisateurs ne commenceront pas à se plaindre que l'environnement de production ne fonctionne pas comme il le devrait et que vous deviez rechercher le problème. Avec la gestion basée sur des stratégies, vous pouvez effectuer des vérifications de configuration de routine et vous assurer que vos serveurs de base de données sont configurés comme vous le souhaitez.
La gestion basée sur des stratégies offre également la possibilité d'appliquer les normes de meilleures pratiques à vos bases de données. En plus de pouvoir créer des stratégies personnalisées, vous pouvez utiliser les stratégies des meilleures pratiques SQL Server que Microsoft a regroupées avec l'installation par défaut. Souvent, trouver les meilleures pratiques peut être une corvée, car tout le monde semble avoir une opinion sur ce qu'elles devraient être. Désormais, avec la gestion basée sur des stratégies, vous bénéficiez des meilleures pratiques éprouvées directement à la source.
Exigences de gestion basées sur des stratégies
La plupart des nouvelles fonctionnalités de SQL Server 2008, telles que Resource Governor, SQL Server Audit et la compression de sauvegarde, nécessitent que vous disposiez de l'édition Enterprise ou Developer. Ce n'est pas le cas avec la gestion basée sur des stratégies. Vous pouvez configurer la gestion basée sur des stratégies dans votre environnement avec n'importe quelle édition de SQL Server 2008, y compris SQL Server Express (bien qu'avec l'édition Express, vous ne puissiez pas créer un serveur de gestion central).
Une fois votre instance SQL Server 2008 installée, vous pouvez évaluer les stratégies par rapport à n'importe quel serveur SQL de votre environnement, tant que vous disposez des autorisations appropriées pour accéder à chaque serveur. En fait, vos SQL Server n'ont même pas besoin d'exécuter SQL Server 2008 pour être évalués par une stratégie ; vous pouvez également exécuter des évaluations de stratégie sur les anciennes versions de SQL Server.
Certaines stratégies peuvent ne pas fonctionner sur les versions précédentes de SQL Server 2008 en raison de différences de fonctionnalités. Par exemple, étant donné que la mise en miroir de bases de données n'était pas disponible dans SQL Server 2000, toute stratégie essayant d'évaluer cette fonctionnalité sur une instance de SQL Server 2000 échouera.
Composantes de gestion basés sur des stratégies
Lorsque vous regardez le noeud Gestion des stratégies ou Policy Management dans SQL Server Management Studio, vous verrez trois dossiers : Stratégies (Policies), Conditions et Facettes (Facets), comme illustré ci-dessous :
La structure des dossiers forme une sorte de hiérarchie des objets requis pour utiliser la gestion basée sur des stratégies. Les facettes sont nécessaires pour créer des conditions, et des conditions sont nécessaires pour créer des stratégies. De plus, des stratégies sont appliquées aux cibles que vous spécifiez. Examinons de plus près chacun des composants qui composent la gestion basée sur des stratégies.
Target
Les target sont les objets étant gérés par une stratégie. Les cibles peuvent faire référence à de nombreux objets : serveurs, bases de données, instances, STORED PROCEDURE,... Les stratégies peuvent contenir plusieurs cibles. Les cibles disponibles varient en fonction du contexte de la politique.
Facettes
Une facette est un groupe de propriétés logiques liées les unes aux autres dans le contexte de la cible spécifiée. Le SQL Server 2008 expose 74 facettes, chacune avec une ou plusieurs propriétés. Cela permet d'exploiter des centaines de propriétés afin de créer des stratégies.
Vous pouvez afficher les propriétés d'une facette en développant le dossier Facettes et en double-cliquant sur une facette. Par exemple, la facette Base de données expose de nombreuses propriétés, telles que les vérifications de configuration pour la fermeture automatique, la réduction automatique, le niveau de compatibilité et la date de la dernière sauvegarde. Vous pouvez voir toutes les propriétés exposées par la facette sélectionnée sur la page Général de la boîte de dialogue Propriétés de la facette, comme illustré dans l'exemple suivant :
De plus, vous pouvez sélectionner la page Stratégies dépendantes pour afficher les stratégies utilisant cette facette et la page Conditions dépendantes pour afficher les conditions utilisant cette facette.
Conditions
Une condition est un état requis spécifié pour la stratégie ou la facette en cours d'évaluation. Fondamentalement, une politique vérifie l'état d'une cible. Si la cible ne respecte pas la condition spécifiée, la stratégie échoue. Une stratégie ne peut évaluer qu'une seule condition, mais vous pouvez évaluer une ou plusieurs propriétés dans une même condition. Vous pouvez afficher une condition en développant le dossier Conditions et en double-cliquant sur la condition. La figure suivant montre un exemple de condition utilisant plusieurs expressions :
La page Description affichera la description de la condition, si elle a été fournie. Vous pouvez voir toutes les stratégies dépendant de cette condition en sélectionnant la page Stratégies dépendantes. Vous n'aurez aucune condition à moins que vous n'ayez précédemment importé une stratégie ou créé manuellement une condition.
Stratégies
Une stratégie est un paquet complet incluant des conditions, des facettes, des cibles, des modes d'évaluation et des restrictions de serveur. Les stratégies sont entreposées dans la base de données système msdb lorsque vous les créez, mais vous pouvez également les exporter et les entreposer au format XML. Cette portabilité permet aux administrateurs de partager et de comparer facilement des stratégies personnalisées. Vous pouvez afficher une stratégie en développant le dossier Stratégies et en double-cliquant sur la stratégie. La figure suivante montre un exemple de stratégie complète :
Contrairement aux conditions, la page Description de la boîte de dialogue contient quelques autres options utiles que vous pouvez utiliser lors de la gestion des stratégies.
Comportement de la stratégie
En plus des composantes utilisés avec la gestion basée sur les stratégies, les modes d'évaluation et les restrictions de serveur peuvent affecter le comportement d'une stratégie donnée.
Modes d'évaluation
La gestion basée sur des stratégies a quatre modes distincts dans lesquels une stratégie peut être définie pour s'exécuter. Ces modes déterminent comment la stratégie sera appliquée par rapport aux cibles définies précédemment. Les modes d'évaluation suivants peuvent être disponibles, selon la facette évaluée dans la stratégie :
- On Demand : ce mode spécifie que la stratégie sera exécutée manuellement. Par défaut, étant donné que cette stratégie est conçue comme une vérification ad hoc, elle sera automatiquement désactivée. Même si la stratégie est créée comme désactivée, vous pouvez toujours l'évaluer à tout moment.
- On Schedule : la sélection de ce mode vous permet de planifier l'évaluation de la politique à tout moment. Par défaut, vous pouvez choisir parmi un calendrier existant ou en créer un nouveau pour répondre à vos besoins. La création de planifications personnalisées vous permet de spécifier des éléments tels que les options de récurrence, la fréquence par jour, la fréquence par heure et même la durée d'exécution de la planification de la politique (par exemple, exécutez cette tâche pendant les deux semaines suivantes).
- On Change: Log Only : la sélection de ce mode évalue si l'événement se produisant tente d'apporter une modification sur une cible spécifiée dans la stratégie. Si l'événement viole la stratégie, l'événement se terminera et les résultats de la violation de stratégie seront alors enregistrés dans le journal des événements, ainsi que dans la base de données système msdb. Cette méthode est utile si vous souhaitez évaluer le nombre d'occurrences se produisant sur un système spécifique et utiliser ces informations pour en faire rapport à la direction. Disposer de ce type d'informations peut aider les administrateurs à montrer l'efficacité de la gestion basée sur des stratégies sans affecter négativement les transactions de production en cours.
- On Change: Prevent: tout comme l'option précédente, cette méthode évalue la stratégie en fonction d'un événement effectuant une modification sur une cible spécifiée dans la stratégie. Mais contrairement à l'option de journalisation uniquement, l'option d'empêchement annulera activement toute transaction enfreignant la politique en place. Cette méthode est une approche proactive pour contrôler votre environnement, car vous pouvez choisir d'activer la stratégie.
Restrictions du serveur
Outre les cibles et les facettes, les restrictions de serveur sont un autre moyen de contrôler la manière dont une stratégie est évaluée. Une restriction de serveur n'est rien de plus qu'une condition que vous pouvez utiliser pour exclure des serveurs d'une stratégie à l'aide de la facette Serveur.
Par exemple, vous pouvez créer une restriction de serveur limitant la stratégie à évaluer uniquement par rapport aux serveurs SQL Server 2008 étant en édition Standard ou Entreprise. Lorsque vous appliquez cette stratégie, le SQL Server ne tentera pas d'évaluer cette stratégie par rapport à une instance ne faisant pas partie de ces éditions.
Gestion des stratégies
Le SQL Server 2008 fournit certaines fonctionnalités facilitant grandement la gestion et l'évaluation des stratégies. Vous pouvez utiliser des catégories pour vous aider à regrouper et à identifier des stratégies similaires, et vous pouvez utiliser un Central Management Server pour exécuter ces stratégies dans votre organisation.
Catégories
Les catégories sont un regroupement logique d'une ou plusieurs stratégies vous aidant à gérer l'application des stratégies. Par exemple, vous pouvez créer un ensemble de stratégies destinées à être exécutées uniquement sur des environnements de test ou de développement. Lorsque vous créez une stratégie, vous pouvez l'affecter à une catégorie spécifique à partir de la page Description de la boîte de dialogue Create Policy.
Pour afficher les catégories, cliquez avec le bouton droit sur le noeud Policy Management ou Gestion des stratégies et sélectionnez Manage Categories dans le menu contextuel. La figure suivant montre la boîte de dialogue Manage Policy Categories :
Serveurs de gestion centraux
Techniquement parlant, un Central Management Server ne fait pas partie de la gestion basée sur des stratégies. Cependant, cette fonctionnalité devient extrêmement importante pour tirer parti de la puissance des stratégies sur l'ensemble de votre environnement SQL Server. Dans SQL Server 2008 ou supérieur, vous pouvez spécifier une seule instance de SQL Server 2008 ou supérieur (édition Standard ou supérieure) comme Central Management Server. Le Central Management Server entrepose une liste d'instances enregistrées pouvant ensuite être organisées en un ou plusieurs groupes Central Management Server. Vous pouvez afficher les Central Management Servers à partir de la fenêtre Registered Servers de SQL Server Management Studio.
Alertes
Une fois que vous avez configuré vos stratégies, vous n'avez pas besoin de vérifier constamment vos serveurs pour vous assurer qu'ils sont conformes. Au lieu de cela, vous pouvez utiliser les alertes de l'SQL Server Agent conjointement avec la gestion basée sur des stratégies pour recevoir des avertissements automatiquement, ou même pour exécuter un travail, lorsqu'une stratégie a été violée.