> SQL Server
Automatisez vos audits de sécurité

Automatisez vos audits de sécurité

SQL Server ? Fort heureusement, il existe des mesures permettant de réduire sensiblement les risques. Vous pouvez prévenir (ou au moins limiter) de nombreuses attaques SQL simplement en vérifiant initialement que vos bases de données et serveurs sont sécurisés comme il se doit.
La configuration de tous les ports d’écoute est-elle appropriée ? Avez-vous désactivé l’ensemble des bibliothèques réseau superflues ? Avez-vous pensé à supprimer les anciens fichiers de configuration SQL Server ? Et la liste ne s’arrête pas là.
Admettons-le, il faut du temps pour sécuriser tous les points de contrôle jusqu’au dernier et pour conserver une longueur d’avance sur les personnes malintentionnées. Chaque jour apporte son lot de nouvelles vulnérabilités concernant la sécurité, d’où la nécessité d’ajouter de nouveaux contrôles et d’effectuer une surveillance fréquente pour rester à l’abri des mauvaises surprises.
Dans ces circonstances, il serait épatant de pouvoir automatiser quelque peu toutes ces tâches d’audit longues et fastidieuses. C’est désormais possible si vous appliquez les techniques simples exposées dans cet article et si vous adaptez le code fourni à votre situation spécifique.

Lire l'article
Optimisation des bases de données MS SQL Server : les requêtes

Optimisation des bases de données MS SQL Server : les requêtes

En théorie, quelle que soit la façon d'écrire une requête, le SGBDR doit être capable de trouver le moyen le plus efficace de traiter la demande, grâce à l'optimiseur. Mais parce qu'il y a loin de la théorie à la pratique, différentes écritures et différents styles de résolution, alliés à la qualité de l'indexation peuvent donner des temps d'exécution très variés.
C'est pourquoi la maîtrise de la conception de requêtes est un des points clefs de la performance d'une base de données bien conçue. Voyons quels en sont les principes basiques.
Dans un cours que je donne aux Arts & Métiers, je montre comment une bonne indexation alliée à la qualité de l'écriture des requêtes, peut faire varier dans une proportion de plus de 300 le temps d'exécution d'une requête. Je commence l'exercice par une demande simple : écrire une requête SQL permettant de répondre à une question basique, mais en prenant soin d'exprimer différentes solutions, même les plus bizarres.

Outre la solution simpliste, certains y arrivent par une union, d'autres avec des sous requêtes, d'autres encore avec des jeux de CASE... L'exécution brute de toutes ces solutions, donne un coût d'exécution allant du simple au triple. La pose d'un premier index trivial ne donne rien, par manque de sélectivité. Après élimination de cette première tentative, la pose d'un nouvel index montre que les requêtes les plus coûteuses au départ deviennent les plus rapides, alors que celles qui étaient les moins coûteuses à l'origine n'ont rien gagné. Un nouvel essai d'indexation remet toutes les requêtes au même rang qu'au départ, chacune gagnant dans la même proportion et plus que l'indexation précédente.

Enfin, la dernière tentative d'indexation étant la bonne, toutes les requêtes bénéficient d'un gain important, mais certaines bien plus que d'autres. Le clou est enfoncé lorsque l'on choisit de dénormaliser avec une vue. Là, le gain devient gigantesque. Il est voisin de 13 000. Mais il ne prend pas en compte l'effort supplémentaire à faire pour les mises à jour (INSERT, UPDATE, DELETE...).

Cet exercice nous apprend trois choses :
• différentes écritures d'une même requête ne donneront pas forcément les mêmes performances, bien que dans l’absolu, ce devrait être le cas [1]
• rien ne sert de poser un index s'il ne sert pas la requête
• une même requête écrite de différentes manières ne bénéficiera pas des mêmes gains lorsque l’on pose un index J’ajouterai que tout ceci évolue en fonction de la volumétrie des données et des données mêmes !

Tant est si bien qu’il est difficile de trouver de prime abord ce qu’est l’écriture d’une bonne requête. Affirmons cependant qu’une bonne requête est une requête qui sait tirer partie du moteur de requête pour le forcer à calculer un plan de requête dont les étapes sont les plus courtes à traiter.

[1] En fait, nous croyons souvent et naïvement que certaines écritures de requêtes sont identiques. Mais nous oublions souvent l’influence du marqueur NULL, dont le comportement particulier dans différents prédicats oblige le moteur SQL à des constructions parfois fort différentes.

Lire l'article
XML et SQL SERVER

XML et SQL SERVER

Les informations échangées entre les différents systèmes, les différentes applications le sont de plus en plus auSQL Server, se sont adaptées. En effet, SQL Server à, entre autre, pour objectif de faciliter le travail avec les données. Pour cela, SQL Server dispose d'un ensemble d'instructions pour extraire des informations relationnelles au format XML ou bien l'opération inverse qui consiste à lire des données au format XML afin de stocker les informations dans une structure relationnelle classique.

Ces 2 étapes sont nécessaires et permettent de confier au moteur de base de données la plupart des transformations depuis ou vers le format XML à SQL Server. Mais SQL Server propose plus en offrant la possibilité de créer des colonnes de type XML. En intégrant directement les informations XML dans la structure relationnelle classique, SQL Server offre plus de souplesse en terme de stockage. Ce type XML est bien plus qu'un simple champ texte car SQL Server rend possible l'indexation des colonnes de type XML mais également la mise à jour, l'ajout et la suppression de données dans le document XML lui-même.

Ce sont ces trois fonctionnalités (extraire les informations au format XML, importer des données XML, stocker des données au format XML) de SQL Server qui sont exposées ci-dessous.

Lire l'article
La sécurité de SQL Server 2005 en 10 étapes

La sécurité de SQL Server 2005 en 10 étapes

Le produit SQL Server 2005 de Microsoft est un sécuriser les composants de l’infrastructure, notamment les serveurs de base de données. Cette stratégie met l’accent sur la protection de la périphérie, du réseau, des hôtes, des applications, des données et sur les défenses physiques. Le présent article expose 10 étapes à respecter avant, pendant et après l’installation de SQL Server 2005, afin de blinder votre infrastructure avec une défense en profondeur.

Lire l'article
Prenez le contrôle de vos rapports avec ReportViewer, 2e partie

Prenez le contrôle de vos rapports avec ReportViewer, 2e partie

Comme vous avez pu le découvrir dans la 1ère partie de cet article, le contrôle ReportViewer dees paramètres du rapport. Dans la 1ère partie de cet article, j’expliquais comment créer et afficher un rapport local en utilisant principalement la programmation « drag-and-drop » (glisser-déplacer) pour créer le dataset.

Nous allons maintenant voir comment écrire du code servant à demander les paramètres du rapport et à fournir le dataset, ce qui vous ouvrira des possibilités infinies concernant les types de rapports que vous pouvez créer. Par exemple, il est possible de créer une application qui stocke les définitions de rapport local dans des fichiers externes, afin que vous puissiez ajouter de nouveaux rapports ou mettre à jour des rapports existants sans recompiler et redistribuer l’application.

Lire l'article
Optimisation des bases de données SQL Server Troisième partie

Optimisation des bases de données SQL Server Troisième partie

TROISIÈME PARTIE : LE MODÈLE DE DONNÉES
Optimiser une base de données simplement par la qualité de son modèle est une chose simple, très efficace et à coût nul... Voila qui devrait intéresser beaucoup de monde. Or c'est souvent l'inverse qui se passe : le peu d'attention apportée au modèle, le peu de précaution dans le choix des types de données, le peu de respect des formes normales sont autant d'icebergs qui ne vont pointer leurs nez qu'au moment une base de données à raison d'une table pour un fichier est un échec assuré dont beaucoup d'éditeurs de solutions informatiques ont fait les frais.

Ce nouvel article a donc pour but de vous faire comprendre ce que sont les données, les types de données et la modélisation dans la perspective d'optimisation d'une base et donc d'un serveur. Toute application avec une forte implication de SGBDR commence par une modélisation des données. La qualité d'un modèle de données, ne se fera sentir que lorsque ce dernier sera mis à l'épreuve du feu, qui dans l'univers des SGBDR consiste à farcir ses tables qu'une quantité phénoménale de données et jouer les requêtes les plus fréquentes afin d'en mesurer les temps de réponse. Or cette phase est rarement entreprise en test. Elle l'est généralement en production.

C'est là qu'est l'os, hélas1, car il est déjà trop tard ! Lorsqu'un modèle de données est établi, et que le poids du volume des données se fait sentir, alors tenter de le remodéliser pour gagner des performances est un chalenge difficile : les évolutions du schéma conduisent à des migrations de données importantes (donc risquées) et des modifications d'interfaces conséquentes (donc du code à récrire). Lorsqu'il s'agit d'une base de données volumineuse, l'inertie des données peut être telle que l'alternative est s'adapter avec un coût de modification élevé ou mourir. C'est pourquoi un modèle de données bâclé présente la particularité d'avoir un coût très élevé lorsqu'il doit être rectifié, alors qu'un modèle peaufiné présente un coût quasi nul si l'on utilise l'outil adéquat et l'homme d'expérience.

Malheureusement, les français ont beau avoir inventé une méthode de modélisation d'une grande simplicité (MERISE2) il n'en demeure pas moins que peu d'informaticiens savent modéliser les données de manière intelligente. Bref, ce sont de ces écueils que je veux aujourd'hui vous entretenir, et pour cela, j'ai découpé en différentes parties le présent article. La première traite des types de données, la seconde des clefs, la troisième des tables et la quatrième de la normalisation.

Lire l'article
Quelques aspects essentiels de la conception des bases de données

Quelques aspects essentiels de la conception des bases de données

La clé de bonnes performances des SQL Server à mieux employer les index lors de la réponse à une requête

Lire l'article
La gestion de la relation client avec Microsoft Dynamics CRM

La gestion de la relation client avec Microsoft Dynamics CRM

Conçu pour aider à développer les ventes et améliorer la satisfaction des clients, Microsoft Dynamics CRM est une solution puissante qui évolue naturellement pour Microsoft SQL Server. Cet article a pour objet de décrire d’une part les aspects fonctionnels nécessaires à la compréhension de l’application et d’autre part l’intégration entre Dynamics CRM et SQL Server.

Lire l'article
Reporting Services : Qu’en est-il des services Web ?

Reporting Services : Qu’en est-il des services Web ?

Vous vous interrogez peut-être sur les alternatives permettant de proposer l’authentification Windows.Une approche fiable consiste à employer le service Web Report Server.

Lire l'article
Utilisation de Reporting Services dans un environnement Internet / Extranet

Utilisation de Reporting Services dans un environnement Internet / Extranet

Il y a quelques mois, j’ai travaillé avec un client qui déployait une nouvelle version d’un portail Web de commerce électronique. L’application, utilisée principalement par les partenaires du client, expose les données de ventes et d’autres informations confidentielles. Le client souhaitait employer des applications sur Internet ou des extranet, cet article explique comment déployer d’abord un modèle d’authentification personnalisé pour Reporting Services, puis comment développer des rapports capables, au moment de l’exécution, de filtrer les données selon l’utilisateur qui consulte les rapports. Vous pouvez également vous servir de cette technique de filtrage avec le modèle de sécurité par défaut de Reporting Services.

Lire l'article
Reporting Services : Conseils et astuces

Reporting Services : Conseils et astuces

Le choix et l’installation de SQL Server Reporting Services (SSRS) constituent uniquement la première étape visant à satisfaire la multitude des consommateurs de rapports présents dans votre entreprise. Il vous reste maintenant à produire des rapports éblouissants qui tirent parti des fonctionnalités avancées, afin d’afficher les données conformément à la myriade d’attentes des utilisateurs, sans pour autant délaisser vos autres tâches.
Cet article propose quelques conseils et astuces pour créer des rapports à la fois utiles et souples, qui s’exécutent de manière appropriée. Il indique également un échantillon d’outils tierce partie qui vous permettront d’étendre les fonctionnalités de SSRS.

Lire l'article
Un outil de reporting fort à  propos

Un outil de reporting fort à  propos

Depuis le lancement initial de .NET Framework 2.0.

Lire l'article
Astuces concernant l’IDE Visual Studio 2005

Astuces concernant l’IDE Visual Studio 2005

J’ai collaboré récemment à quelques projets de développement qui m’ont permis de mettre à l’épreuve Visual Studio 2005. Ce faisant, j’ai identifié les astuces de productivité suivantes et j’aimerais vous en faire profiter

Lire l'article
Organisation des index dans SQL Server 2005

Organisation des index dans SQL Server 2005

SQL Server 2005 introduit un nouveau modèle pour les commandes DDL (Data Definition Language). Vous allez créer tous les objets au moyen d’une commande CREATE, les supprimer à l’aide d’une commande DROP et les modifier avec ALTER.SQL Server 2005 n’utilisera pas de procédures stockées distinctes pour modifier un aspect d’un objet, comme sp_defaultdb dans SQL Server 2000 et 7.0, qui modifie la base de données par défaut d’un utilisateur, ou encore les commandes de création spéciales à finalité unique telles que sp_addtype. SQL Server 2000 a déjà fait un pas dans cette direction en améliorant la fonctionnalité de la commande ALTER DATABASE afin d’inclure toutes les modifications apportées aux propriétés de base de données et en décourageant le recours à la commande sp_dboption.

Lire l'article
Vue d’ensemble des informations de fragmentation SQL Server

Vue d’ensemble des informations de fragmentation SQL Server

L’article « Organisation des index dans SQL Server 2005 » présente les spécifications permettant d’appeler la nouvelle fonction TVF (Table-Valued Function) sys.dm_db_index_physical_stats() dans SQL Server utilise des listes de pages séparées (organisées en fonction du mode de stockage par SQL Server des données sur la page). Par ailleurs, la version 2005 introduit la possibilité de créer une table ou un index sur des partitions distinctes, chaque partition ayant sa propre liste de pages. Une liste de pages d’un type pour une partition est appelée unité d’allocation. SQL Server 2005 gère un maximum de trois unités d’allocation pour chaque table ou index de chaque partition. Ces trois unités d’allocation sont mappés avec trois types de pages gérés par SQL Server 2005 : IN_ROW_DATA (à savoir les lignes de données ou d’index classiques), LOB_DATA (à savoir, les données d’objets de grande taille, telles que text, ntext ou image) et ROW_ OVERFLOW_DATA (un nouveau type de stockage).

Lire l'article
Modélisation des données avec SQL SERVER 2005

Modélisation des données avec SQL SERVER 2005

SQL Server 2005 introduit une pléthore de fonctionnalités et concepts : nouveaux outils de serveur, nouvelles constructions de langage T-SQL et même une interface entièrement redéfinie, SQL Server Management Studio, qui vient remplacer la console familière Enterprise Manager. L’interface d’analyse décisionnelle (BI) a été repensée, DTS laisse la place à SQL Server Integration Services (SSIS) et devient encore plus sûr.Vous n’avez plus besoin d’écrire de procédures stockées uniquement en T-SQL, grâce à l’intégration du CLR (Common Language Runtime), et le nouvel outil SQL Server Report Builder va faciliter votre travail de présentation des données. Pourtant, toutes ces nouveautés séduisantes (dont beaucoup ont été décrites dans d’autres articles de SQL Server Magazine ou dans d’autres ressources citées dans l’encadré Bibliographie) vont-elles changer fondamentalement le travail du modélisateur de données ? La réponse est non. En effet, malgré toutes ces nouvelles fonctions et fonctionnalités, quelque chose n’a pas changé : vous devez encore modéliser vos données avant de créer la base de données.

La modélisation des données est le processus consistant à capturer les règles métier, les réglementations et exigences (spécifications), puis à les convertir, une fois interprétées correctement, en un ensemble bien structuré de tables de base de données, relations et contraintes. Vous exprimez le modèle avec une série de représentations graphiques afin d’essayer de mieux comprendre les données et leur incidence sur les opérations organisationnelles. Ces représentations graphiques ne sont pas limitées à une plate-forme de base de données spécifique. Vous pouvez développer un modèle de données conceptuel, puis un modèle de données logique que vous mettrez en oeuvre sur n’importe quel SGBD, par exemple SQL Server, Oracle, IBM DB2 ou MySQL. Par conséquent, les mises à jour de versions dans un SGBD ne modifient en rien votre travail de compréhension des données, ni les exigences métier et la création des modèles de données.

Lire l'article
Optimisation des bases de données MS SQL Server – Partie 2

Optimisation des bases de données MS SQL Server – Partie 2

Seconde partie : le serveur - ressources physiques, ressources logiquesJe pose souvent la question en ces termes lors des formations que je donne : parmi les différentes formes d’informatique, laquelle nécessite les machines ayant les plus grandes ressources ? La plupart du temps, les étudiants et les stagiaires m’affirment que c’est l’informatique scientifique, gavée des exploits des antiques Cray et de Deep Blue et des monstres utilisés pour les calculs de la météo. D’autres pensent que ce sont les machines de la conquête spatiale… Peu savent que l’on trouve les systèmes les plus étoffés dans l’informatique de gestion. Un système comme SABRE de United Airlines fut longtemps l’un des systèmes de gestion de bases de données les plus énormes qui soit.

Ce besoin de ressources est lié à deux composantes : des calculs, certes souvent peu complexes, mais surtout la volumétrie des données à manipuler. Des quantités de données parfois si gigantesques qu’il convient de répartir la charge sur de multiples machines car pour certaines bases, aucun ordinateur au monde n’a encore la capacité de traiter seul et dans des temps de réponse acceptables les masses des données en jeu.

Finalement un serveur n’est rien d’autre qu’un ordinateur dont on a sciemment atrophié certains éléments afin de les rendre plus performants qu’un PC de bureau. Voyons ce qu’un serveur n’a peu ou prou besoin. Il n’a pas bien besoin d’un écran puisque qu’il se doit d’être scruté par l’intermédiaire d’autres machines. Il n’a pas non plus réellement besoin d’un clavier ni d’une souris pour les mêmes raisons. En revanche, nous pouvons convenir qu’il a besoin de beaucoup de mémoire comme nous l’avons vu au chapitre précédent. Il a besoin de processeurs rapides (notez le pluriel), de disques de grande capacités dotés des temps de réponses les plus courts. Ce sont donc ces trois axes que nous allons étudier dans cet article. Nous verrons cela du côté physique puis du côté logique. Nous en tirerons quelques nouvelles règles propres à établir les préconisations que tout un chacun doit pouvoir spécifier afin de choisir une machine et la configurer au mieux en fonction de son budget.

Lire l'article
Deux outils pour une optimisation permanente de SQL Server

Deux outils pour une optimisation permanente de SQL Server

Depuis des années, le support technique de Microsoft (PSS) se sert de deux outils, OSTRESS et Read80Trace, afin de simuler des scénarios et d’analyser des fichiers de trace SQL Server pour le compte de ses clients. Au cours de l’édition 2004 de la conférence PASS (Professional Association for SQL Server), ces outils ont été dévoilés au public.Les DBA et développeurs SQL Server verront dans OSTRESS un outil appréciable pour la mise en oeuvre de scénarios de test de charge complexes et Read80Trace les aidera à analyser des fichiers de trace SQL Server afin de résoudre des problèmes de performances. Cet article propose quelques scénarios d’utilisation détaillés pour ces outils et fournit des indications afin de les mettre en oeuvre efficacement.

 

Lire l'article
Réplication de base de données contre réplication du stockage

Réplication de base de données contre réplication du stockage

De nombreux base de données permet de satisfaire des exigences de réplication spécifiques non prises en charge par l’autre approche. Le présent article se propose d’examiner les trois facteurs décisifs à prendre en considération afin de combiner au mieux les deux approches pour votre organisation.

Lire l'article
De la valeur de l’intégration SQL Server 2005 et Visual Studio 2005

De la valeur de l’intégration SQL Server 2005 et Visual Studio 2005

Paul Flessner et S. Somasegar, vice-présidents chez Microsoft, parlent à coeur ouvert de l’approche « Une équipe qui gagne »Au cours d’un entretien, les vice-présidents de Microsoft Paul Flessner (vice-président directeur de la division des applications serveur, laquelle inclut http://www.itpro.fr Club abonnés.)

Lire l'article