Comment éviter les attaques par injection de code SQL
par William Sheldon - Mis en ligne le 23/11/2005 - Publié en Décembre 2004
Au moment de définir votre infrastructure de sécurité, la protection des
données de votre organisation constitue votre principal objectif. SQL Server, en tant
que référentiel de données, devient le centre de votre univers axé sur la sécurité.
Pour sécuriser vos données, vous avez exécuté l'outil MBSA (Microsoft Baseline
Security Analyzer), limité les communications avec la base de données, mis en
oeuvre le protocole IPSec (Internet
Protocol Security) afin de crypter vos communications
et peut-être même ajouté un
pare-feu séparé. Malgré tout, il reste un
moyen pour les intrus d'attaquer votre
base de données : par le biais des applications
qu'elle prend en charge. Toute stratégie
de sécurité comporte un maillon
faible et, du point de la conception, l'élément
le plus faible de votre stratégie sera
l'application Web car elle constitue le principal
point d'entrée pour les intrus, les autres chemins d'accès possibles ayant normalement
été verrouillés. Toutefois, une gestion incorrecte de ce point d'entrée
peut rendre vos données vulnérables à l'attaque potentiellement dévastatrice
qu'est l'injection de code SQL. Ce type d'attaque est extrêmement dommageable
car elle permet aux intrus d'exécuter des commandes directement sur votre base
de données.
Les paramètres en première ligne
par Rodney Landrum - Mis en ligne le 25/10/2005 - Publié en Décembre 2004
En tant qu'administrateur de base de données (DBA) et analyste de données,
je ne peux pas, en dépit de tous mes efforts, toujours éviter d'écrire du code pour
résoudre des problèmes complexes ou tirer parti de la richesse des outils de gestion
proposés par SQL Server. Au fil des années, j'ai écrit des scripts de solutions
pour toutes sortes de projets liés à SQL Server, allant de la création de lots DTS
(Data Transformation Services) à l'écriture de code ASP (Active Server Pages), me
réjouissant chaque fois que je suis parvenu à me dépêtrer des erreurs de syntaxe et
de la logique des boucles imbriquées. Toutefois, lorsque Microsoft a sorti SQL
Server 2000 Reporting Services, une solution qui requiert Visual Studio .NET 2003
pour l'élaboration de rapports, j'ai craint d'être obligé de franchir le pas et de devenir
un développeur accompli. Mais, en fait, vous n'avez pas besoin d'être un programmeur
pour développer un rapport Reporting Services. Cet outil propose deux
fonctionnalités de rapports puissantes, les paramètres et les expressions, qui une
fois combinées permettent aux créateurs de rapports d'ajouter des fonctionnalités
sophistiquées à leurs rapports sans écrire du code à rallonge.
L’automatisation des traces en 9 étapes
par Steven Berringer - Mis en ligne le 25/10/2005 - Publié en Décembre 2004
Le Générateur de profils, la fonctionnalité de trace intégrée
de SQL Server, constitue un outil précieux pour l'optimisation
des performances et le débogage des applications
SQL Server. Vous pouvez ainsi tracer chaque requête soumise
par une application de base de données à SQL Server et
exploiter ces informations pour améliorer les performances.
Par exemple, si vous exécutez une trace du Générateur de
profils au cours d'un processus de longue durée, vous pourrez
constater que SQL Server utilise une analyse de table,
rencontrant ainsi des verrous de table ou aboutissant à
d'autres événements nuisibles pour les performances. Dans
la majorité des cas, je me sers du Générateur de profils à la
demande d'un développeur qui essaie de déboguer du code
de base de données épineux. Parfois, si j'ai le temps, j'adopte
une approche préventive et j'exécute ma trace favorite, à savoir
la trace Duration. Celle-ci recherche les processus accédant
à SQL Server et dont la durée d'exécution est supérieure
à 1 seconde. Cette valeur d'une seconde semble une
limite appropriée, car cela vous permet de voir les processus
qui consomment le plus de ressources sans tout monopoliser.
YUKON : une mine d’or
par Michael Otey - Mis en ligne le 10/10/2005 - Publié en Octobre 2004
Yukon, dont la livraison est prévue en 2005, est la dernière version de
Microsoft SQL Server. Il marque la fin d'un cycle de développement de 5 ans
pour Microsoft. La firme a ajouté tellement de nouvelles fonctions à Yukon
qu'il est impossible de les énumérer toutes dans un seul article. Voici donc 13
pépites d'or que l'on risque fort de trouver dans la prochaine release notable
de SQL Server.
Bibliothèque Patterns and Practices
par Michael Otey - Mis en ligne le 10/10/2005 - Publié en Octobre 2004
A mesure que les solutions Microsoft gagnent en richesse fonctionnelle, elles
deviennent également plus complexes à mettre en oeuvre. Mais une véritable mine
d'informations en ligne peu connue, située sur le site de Microsoft et intitulée
« Microsoft Patterns and Practices Library », peut vous aider. Cette collection d'ouvrages
écrits par le personnel du Support technique
de Microsoft, des consultants Microsoft
et des membres des équipes produits contient
les meilleures pratiques de Microsoft et des
conseils qui ont fait leurs preuves dans la mise
en oeuvre de technologies clé, allant de la planification
d'Active Directory à l'architecture
des applications en passant par des exemples
de code. Vous pouvez télécharger l'ensemble
des ouvrages de la section « Patterns and
Practices Library » gratuitement sous forme de
fichiers PDF ou les acheter en versions CDROM
ou imprimée à l'adresse http://www.microsoft.com/patterns. Vous trouverez
ci-après mes cinq guides favoris traitant des bases de données
Commandes DBBC
par Michael Otey - Mis en ligne le 14/09/2005 - Publié en Octobre 2004
Les commandes DBCC (Database Consistency Checker) peuvent fournir de précieuses
informations sur le fonctionnement interne de votre système SQL Server. Elles comportent
toute une série de fonctions documentées puissantes, mais aussi de nombreuses
possibilités non documentées, dont vous n'avez peut-être pas connaissance. Pour en
savoir plus sur ces dernières, utilisez la commande DBCC HELP avec l'indicateur de
trace 2520 activé. Voici sept commandes DBCC non documentées qui vous donneront
un aperçu de votre système SQL Server. Pour les employer, commencez par activer l'indicateur
de trace 3604 à l'aide de la commande DBCC TRACEON (3604).
Comment renforcer la sécurité de SQL Server
par Michael Otey - Mis en ligne le 14/09/2005 - Publié en Octobre 2004
La sécurité demeure un sujet brûlant dans le monde informatique. Internet et des
protocoles tels que SOAP (Simple Object Access Protocol) et XML poussent encore plus les
utilisateurs à rester connectés en permanence. Par ailleurs à mesure que les nouvelles
technologies rendent vos systèmes plus accessibles, la menace des virus et des pirates n'a
jamais été aussi grande. Les sept étapes suivantes vous aideront à renforcer la sécurité
de vos systèmes SQL Server.
Pagination côté serveur avec SQL Server
par Andrew Rosca - Mis en ligne le 6/07/2005 - Publié en Octobre 2004
Une procédure stockée simple vous permet de contrôler les flux de données et
d'accéder à des millions d'enregistrements
Les applications Web utilisent fréquemment la pagination d'enregistrements
afin de présenter de très grandes quantités de données aux utilisateurs. Par
exemple, il n'est pas rare qu'un moteur de recherche Internet retourne des dizaines
de milliers de résultats en réponse à une requête d'un utilisateur. Si le
moteur renvoyait l'ensemble des résultats en une seule fois, le système destinataire
serait complètement saturé. C'est pourquoi la pagination décompose
les données en blocs de taille fixe rendant possible la gestion des résultats et
réduisant la quantité d'informations transférées en une seule fois du serveur
vers le client ...L'application ne propose que quelques enregistrements à la fois
aux utilisateurs, en commençant de préférence par les informations les plus
pertinentes. Non seulement la pagination facilite la compréhension et la
consultation des données, mais elle améliore également les performances de
l'application, car la récupération et l'affichage de volumes élevés d'informations
créent une charge inutile qui peut ralentir votre système. Si ce dernier pagine
les enregistrements correctement, les utilisateurs d'un moteur de recherche
n'auront vraisemblablement pas besoin de consulter plus d'une ou
deux pages de résultats.
Malheureusement, de nombreux programmeurs n'ont pas conscience de
certains aspects importants de la pagination sur le plan des performances.
Dans un environnement IIS et SQL Server classique, la méthode la plus fréquente
de mise en oeuvre de la pagination
consiste à utiliser les fonctionnalités
de pagination de l'objet ADO Recordset
standard, notamment les propriétés
AbsolutePage, PageSize et PageCount.
Pour les volumes de données relativement
faibles (entre quelques dizaines et
quelques centaines d'enregistrements),
ces fonctionnalités sont parfaitement appropriées
et la charge qu'elles génèrent
n'affecte pas sensiblement les performances.
Toutefois, à mesure que le
nombre d'enregistrements augmente, cette technique perd en efficacité et entraîne
une baisse sensible des performances de l'application.
Dans les applications gérant des volumes importants de données, par
exemple une application d'approvisionnement qui affiche des nombres élevés
de commandes, un site de rencontres gérant des milliers d'utilisateurs ou un
site de commerce électronique qui affiche des centaines de produits en réponse
à une recherche d'un utilisateur, vous avez besoin de techniques de pagination côté serveur sophistiquées.
Cet article présente un exemple simple
de technique de codage que j'utilise
pour des tables contenant plusieurs
millions d'enregistrements.
Les files d’attente
par Sameer Dandage - Mis en ligne le 6/07/2005 - Publié en Octobre 2004
Si une légère attente n'est pas critique, la solution de réplication TRQU est faite
pour vous
Aujourd'hui, de plus en plus d'entreprises doivent rendre leurs données disponibles
sur de multiples serveurs et sur des sites distants, en préservant une synchronisation
la plus étroite possible entre les données de chacun des sites. Dès
lors qu'il existe plusieurs copies des données stratégiques, la disponibilité de ces
dernières s'en trouve améliorée. Par exemple, en cas de défaillance d'un site, vous
pouvez dévier le trafic vers un autre site ou serveur ...Par ailleurs, les administrateurs
de base de données (DBA) peuvent répartir la charge sur plusieurs serveurs,
afin d'éviter la surcharge de l'un deux et améliorer les temps de réponse aux requêtes
des utilisateurs, en particulier si le serveur est situé à proximité de ceux-ci.
Envisageons quelques instants un scénario illustrant les besoins de failover et
de répartition de la charge pour un système de base de données qui inclut une application
à trois niveaux sur deux sites géographiquement
distincts. Chaque site utilise un
serveur Web, un serveur d'applications et un
serveur de base de données. Lorsque le fonctionnement
du système est optimum, le serveur
Web et le serveur d'applications de
chaque site distribuent leurs requêtes utilisateur
entre les deux serveurs de base de données
afin qu'ils puissent se répartir la charge
de travail. Toutefois, en cas d'indisponibilité
d'un des deux serveurs de base de données ou
d'une des bases de données, les serveurs Web
et d'applications peuvent basculer toutes leurs requêtes vers le serveur de base de
données de l'autre site. Dès que le premier serveur de base de données est de
nouveau opérationnel, le processus de répartition des requêtes utilisateur entre
les deux est rétabli.
Lorsqu'une organisation utilise un site actif et maintient l'autre en lecture
seule, les tâches du DBA sont relativement simples. En revanche, son travail devient
très vite complexe si l'organisation décide de placer plusieurs sites en mode
actif et de synchroniser les données entre eux. Pour répondre à ce cas de figure,
SQL Server propose une option : la réplication transactionnelle. L'objet de cet article
n'étant pas d'expliquer les fondements de ce mécanisme, vous trouverez plus
d'informations sur le sujet en lisant la rubrique « Réplication transactionnelle » de
la documentation en ligne de SQL Server.
SQL Server 2000 propose deux options de réplication transactionnelle permettant
d'actualiser les données au niveau de l'abonné (Subscriber). Pour la première,
intitulée « Réplication transactionnelle avec mise à jour immédiate des
Subscribers », SQL Server utilise une validation à deux phases afin de mettre à jour
simultanément dans la même transaction l'éditeur (Publisher) et le Subscriber. La
validation à deux phases verrouille la ligne concernée sur tous les sites participant à la réplication lorsqu'une mise à jour est effectuée sur l'un
d'eux. Ce mécanisme de verrouillage élimine toute latence
entre le moment où un Subscriber est mis à jour et le moment
où le Publisher reflète la mise à jour en question. Pour
que cette option fonctionne, le Publisher et le Subscriber
doivent toutefois être en cours d'exécution et connectés en
permanence, faute de quoi les utilisateurs ne peuvent pas effectuer
de mises à jour sur le Subscriber.
La deuxième option est la « Réplication transactionnelle
avec mises à jour en file d'attente », que j'abrégerai en TRQU
(Transactional Replication with Queued Updates) dans cet
article. A la différence de la première option, la solution
TRQU requiert une certaine latence entre le moment d'une
mise à jour sur le Subscriber et le moment où celle-ci est répercutée
sur le Publisher. Mais cette approche présente un
inconvénient : une ligne peut être mise à jour avec des données
différentes sur plusieurs sites simultanément et la cohérence
des données entre les sites ne sera pas assurée tant
qu'un mécanisme de résolution des conflits n'aura pas
éliminé cette incohérence. Vous définissez des règles de
résolution, telles que « l'éditeur gagne » (Publisher wins) ou
« l'abonné gagne » (Subscriber wins), dans la configuration
TRQU. En conséquence de quoi, les mises à jour sur un site
peuvent remplacer celles effectuées sur un autre. L'approche
TRQU présente l'avantage suivant : le Publisher et le
Subscriber ne doivent pas être connectés en permanence
et le Publisher peut être arrêté pendant la mise à jour d'un
Subscriber. Par conséquent, la réplication TRQU garantit aux
utilisateurs une disponibilité plus élevée d
Fonctionnalités de haute disponibilité
La famille de produits SQL Server 2005 a été repensée afin de mieux répondre aux besoins de toutes les entreprises.
Cette ligne de produits apporte des fonctionnalités de haute disponibilité, de montée en charge, de sécurité, d'administration et d'analyse décisionnelle.
Lire l'article
Une division entièrement dédiée aux éditeurs de logiciels
par Michael Hotek - Mis en ligne le 3/03/2005 - Publié en Avril 2004
Daniel Cohen-Zardy, Responsable Relation Editeurs de logiciels, Microsoft France
répond à quelques questions.
SQL Server Actualités – Semaine 21 – 2005
Les actualités SQL Server pour le mois de Mai 2005
Lire l'article
Solutions Haute Disponibilité
par Michael Hotek - Mis en ligne le 3/03/2005 - Publié en Avril 2004
Pour rendre un système vraiment disponible
La haute disponibilité est l'un des crédos de l'industrie informatique, mais savez-
vous ce qu'elle signifie et comment l'obtenir ? Les spécialistes des technologies
de l'information tentent chaque jour d'instaurer la haute disponibilité à grand renfort
de matériel et de logiciel coûteux, sans s'attaquer au vrai problème ...Techniciens et managers, ils sont nombreux à croire que la haute disponibilité est
une solution « en boîte » qu'on met en place puis qu'on oublie. Malheureusement,
la technologie n'est qu'une pièce du puzzle haute disponibilité.
La véritable haute disponibilité est une combinaison de gens, de processus et
de technologies. Bien que l'on puisse bâtir des solutions hautement disponibles
sans l'un de ces composants, le fait de faire appel aux trois assure une disponibilité
de niveau professionnel, même dans des environnements modestes. Sans les
gens compétents capables de gérer les processus rendant les systèmes hautement
disponibles, la seule technologie ne suffira pas.
Comment mesure-t-on la disponibilité ? Les professionnels IT la définissent par
cette équation :
A = (F - (D + R))/F
où A est la disponibilité, F est le temps
moyen entre des défaillances, D est le
temps moyen pour détecter la défaillance
et adopter un remède, et R
est le temps moyen de réparation.
Les trois facteurs que vous maîtrisez
le plus sont : le temps moyen de réparation,
le temps moyen de détection
d'une défaillance, et le temps
moyen pour choisir un remède. Pour
détecter une défaillance, il faut de la
technologie et du personnel formé. Une personne compétente peut prévenir certaines
défaillances et en détecter d'autres avant qu'elles ne sévissent, et appliquer
des remèdes qui gardent le système online. Cette maintenance préventive englobe
de puissants processus qui fournissent des chiffres de performances servant d'étalon
de supervision et de comparaison à l'équipe d'exploitation. Pour un administrateur
de base de données (DBA, database administrator), il est très important de savoir quand le système fonctionne
comme prévu et quand quelque chose
d'anormal se produit. Si des processus
de test de charge ne sont pas en place,
on ne peut obtenir des chiffres de performances
qu'en observant l'application
après sa mise en production, au
risque d'obtenir de faux résultats si elle
déraille dès le départ. Les résultats de
test de performances d'une application
permettent aux DBA de diagnostiquer
rapidement des problèmes en
cours de production.
Le seul facteur que vous ne maîtrisez
pas est le temps moyen entre
défaillances : il est totalement imprévisible.
Par conséquent, les investissements
en haute disponibilité doivent
être consacrés d'une part aux gens et
aux processus pour réduire le temps
de détection et de prise de décision, et
d'autre part à la technologie pour réduire
le temps de détection et de réparation.
Retenez l'ensemble de règles suivant
:
- La bonne gestion impose la haute disponibilité.
- Ce sont des personnes qui gèrent les solutions haute disponibilité.
- Les processus assurent le bon fonctionnement de ces solutions.
- La technologie apporte l'élément « physique » de la haute disponibilité.
Microsoft SQL Server 2000 Reporting Services
Geac annonce l'intégration dans MPC, sa solution de gestion de la performance, d'un nouveau module de business intelligence, basé sur les outils de l'offre 'Microsoft SQL Server 2000 Reporting Services'.
Ce nouveau module permettra aux clients de Geac et de Microsoft, de disposer d'outils de reporting puissants, au travers de l'édition automatique de rapports adaptables et configurables en fonction de différents cibles d'entreprise : analystes, auditeurs, comités de direction, managers...
Lire l'article
SQL Server Actualités – Semaine 7 – 2005
Les actualités SQL Server pour le mois de Février 2005
Lire l'article
SQL Server Actualités – Semaine 19 – 2005
Les actualités SQL Server pour le mois de Mai 2005
Lire l'article
Network Automation annonce AutoMate 5.0
Network Automation annonce AutoMate 5.0, logiciel qui automatise les tâches IT « front-and-back-office ».
En utilisant l'interface « glisser-déposer » il est possible d'assembler rapidement des tâches sans écrire de code.
Lire l'article
Gestion de bases de données vers SQL Server
Vous souhaitez migrer votre système actuel de gestion de bases de données vers SQL Server ? Consultez les ressources qui vous sont proposées et faites-vous votre propre idée du produit et des avantages dont vous pourrez bénéficier : performance, disponibilité, fiabilité ou encore optimisation des coûts.
Plus d'informations sur http://www.microsoft.com/france/sql/migration/default.asp
Lire l'article
ADO.Net 101 SqlCommand
par Rick Dobson - Mis en ligne le 16/02/2004 - Publié en Avril 2004
Un objet ADO.NET pour exécuter des commandes SQL Server
Les applications de base de données
exécutent fréquemment des instructions
SQL dynamiques et des procédures
stockées ...Les premières sont
utiles pour les opérations liées au langage
de définition de données (DDL),
par exemple la création de tables, ou
pour les opérations d'accès aux données,
telles que les requêtes ad hoc.
Les secondes constituent l'ossature de
la plupart des applications de base de
données et elles exécutent généralement
des requêtes prédéfinies, ainsi
que des mises à jour de la base de données.
SqlCommand est l'objet ADO.
NET chargé d'exécuter des instructions
SQL dynamiques et des procédures
stockées au niveau d'une base
de données SQL Server. Il est essentiel
de savoir l'utiliser pour commencer à
développer des applications ADO.
NET. Par ailleurs, la connaissance du
codage dans l'environnement Microsoft
.NET et du langage ADO.NET
représente une étape préparatoire
indispensable pour Yukon, la prochaine
version de SQL Server, car celleci
fera appel aux langages .NET pour la
création d'objets de base de données.
Cet article constitue une introduction
à l'utilisation de l'objet SqlCommand.
Il explique notamment comment l'employer
pour exécuter des instructions
DDL SQL dynamiques et passer des paramètres
à une procédure stockée, ou
encore pour exécuter une procédure
stockée et renvoyer des valeurs. Bien
que Visual Studio .NET ne soit pas absolument
indispensable pour les
exemples présentés ici, son utilisation
est nettement préférable à l'écriture
manuelle de ces programmes à l'aide
d'un éditeur de texte et du kit de développement
logiciel (SDK) .NET
Framework.
Avant de pouvoir utiliser la classe
SqlCommand (le code source servant à
créer un objet SqlCommand), vous devez
ajouter une directive d'importation
pour l'espace de nom System.
Data.SqlClient dans votre projet. La directive
d'importation permet de faire
référence de manière « abrégée » à des
classes dans l'espace de nom, de sorte
qu'il n'est pas nécessaire d'ajouter systématiquement
le préfixe System.
Data.SqlClient à chaque classe. Pour
un projet Visual Basic .NET (VB.NET),
ajoutez la ligne suivante en haut de
votre fichier source :
Imports System.Data.SqlClientAprès avoir ajouté la directive d'importation, vous êtes prêt à utiliser les objets ADO.NET SqlCommand dans vos projets. Lire l'article
SQL Server Actualités – Semaine 15 – 2005
Les actualités SQL Server pour le mois d'Avril 2005
Lire l'articleLes plus consultés sur iTPro.fr
- Le changement, moteur d’engagement au travail
- Cloud 2026 : 5 tendances à anticiper pour les PME françaises
- Les DSI français face au défi de l’IA : ambitions élevées, marges de manœuvre limitées
- Connectivité et impression sans contrainte : repenser la gestion documentaire en 2026
Articles les + lus
L’essor de l’IA propulse les cyberattaques à des niveaux records
Face aux ransomwares, la résilience passe par les sauvegardes immuables
Les 6 tournants qui redéfinissent l’IA en entreprise
Infrastructures IT : 5 leviers concrets pour éviter les impasses technologiques
Une menace à 1 milliard d’euros : le gouffre de la fraude e-commerce en France
À la une de la chaîne Data
- L’essor de l’IA propulse les cyberattaques à des niveaux records
- Face aux ransomwares, la résilience passe par les sauvegardes immuables
- Les 6 tournants qui redéfinissent l’IA en entreprise
- Infrastructures IT : 5 leviers concrets pour éviter les impasses technologiques
- Une menace à 1 milliard d’euros : le gouffre de la fraude e-commerce en France
