SQL

3.3252160251221 (1273)
Posté par rachel 01/05/2009 @ 18:13

Tags : sql, développement, high-tech

Dernières actualités
SQL Server 2008 - Entrainez-vous à administrer une base de données - ITRManager.com
Avec ce livre sur SQL Server 2008, le lecteur pourra s'entraîner sur les différentes opérations que peut être amené à réaliser un administrateur SQL Server 2008 et ainsi mieux comprendre le fonctionnement et le comportement de SQL Server 2008....
La nouvelle technologie SmartDiff de Quest Software fait tenir une ... - Zetta.fr
Quest Software, Inc. (Nasdaq: QSFT) dévoile SmartDiff, sa nouvelle technologie de compression des données, intégrée à la dernière version de sa solution de sauvegarde et de restauration pour les environnements de bases de données SQL Server,...
Avec l'été, Microsoft fait fondre les prix - ITchannel.info (Abonnement)
SQL Server Standard, SQL Server Entreprise, SQL Server Workgroup, SQL Server TM Web et SQL CAL, Exchange Server Standard, Exchange Server Enterprise, Exchange Server CAL, SharePoint Enterprise CAL, Office SharePoint CAL, SharePoint Internet,...
Comment rechercher activement du travail sans se faire repérer par ... - 01net
Il est intéressant de bien détailler vos expériences, comme dans un CV, et de citer les technologies que vous maîtrisez (par exemple : expert en développement Java J2EE, en bases SQL…). Petite astuce : sur LinkedIn, dans vos « préférences de contacts »...
CONCEPTEUR DEVELOPPEUR ORACLE / WEB - Programmez!
Vous maîtrisez le développement en SQL, PL/SQL, ainsi que FORMS et REPORTS (Developper Suite 10g) dans un environnement ORACLE 9i évoluant vers 10g/11g. ?Intégration XHTML/CSS2, JavaScript (AJAX). Il est impératif, pour ce dernier point,...
DBA SQL SERVER (H/F) - Programmez!
L'Administration des bases de données SQL Server en environnement de Production et de Développement Versions 2000/2005/ 2008, ? L'Analyse et la Résolution d'incidents de production, ? L'Analyse des besoins et la Mise en place des solutions...
FastRecover de BakBone: sauvegarder et restaurer instantanément? - Silicon.fr
Cette solution associe la sauvegarde sur disque en temps réel et la restauration quasi-instantanée des données Exchange, SQL Server ou tous serveurs de fichiers Windows sur un serveur virtuel ou physique secondaire. La solution est "logicielle" mais...
Tribune : le concept de bases de données épaisses, pour en finir ... - LeMondeInformatique
Les avantages, écrit Frédéric Brouard, sont nombreux : vitesse de traitement améliorée, langage de développement stable, possibilités étonnantes du SQL réduisant sensiblement le temps de développement. Et de citer quelques statistiques : « Réduction...

Microsoft SQL Server

SQL Server est un Système de gestion de base de données (SGBD) développé et commercialisé par Microsoft.

Initialement co-développé par Sybase et Microsoft, Ashton-Tate ayant aussi été associé à la première version qui est sortie en 1989. Cette version est sortie sur les plateforme Unix et OS/2; Depuis Microsoft a porté ce système de base de données sous Windows et il est maintenant uniquement supporté sur ce système.

En 1994, le partenariat entre les 2 sociétés ayant été rompu, Microsoft sortit la version 6.0 puis 6.5 seul, sur la plateforme Windows NT.

Microsoft SQL Server fait désormais partie de la stratégie technique de Microsoft en matière de base de données. Le moteur MSDE qui est la base de SQL Server doit à terme remplacer le moteur Jet (celui qui gère les bases Access) dans les applications telles que Exchange et Active Directory.

La version 2005 de SQL Server est sortie le 3 novembre 2005 en même temps que Visual Studio 2005. Le support de Windows Vista et de Windows Server 2008 n'a été ajouté qu'à partir du Service Pack 2 (SP2).

La version 2008 de SQL Server (nom de code Katmaï) est disponible en 2008 en version RC0 (Release Candidate 0). Elle est disponible en 9 langues, dont le français. Sa sortie est annoncée pour le 3e trimestre 2008.

Pour les requêtes, SQL Server utilise T-SQL (Transact-SQL), il s'agit d'une implémentation de SQL qui prend en charge les procédures stockées et les déclencheurs (trigger). Le T-SQL est incompatible avec le PL/SQL d'Oracle.

Pour les transferts de données SQL Server utilise le format TDS (Tabular Data Stream) qui a été implémenté dans d'autres bases de données (en particulier dans son homologue Sybase) et dont les spécifications sont publiques. Une implémentation Open Source d'un client TDS est disponible et constitue la base du client SQL Server du projet Mono : FreeTDS.

SQL Server est un SGBD relationnel. Il est possible de définir des relations entre les tables de façon à garantir fortement l'intégrité des données qui y sont stockées. Ces relations peuvent être utilisées pour modifier ou supprimer en chaîne des enregistrements liés.

SQL Server est un SGBD transactionnel. Il est capable de préparer des modifications sur les données d'une base et de les valider ou de les annuler d'un bloc. Ceci garantit l'intégrité des informations stockées dans la base.

Lors d'une transaction, les blocs de données contenant les lignes de données modifiées par cette transaction sont verrouillés. Les autres utilisateurs, en fonction du niveau d'isolation choisi, doivent attendre ou non la fin de la transaction pour pouvoir les modifier à nouveau.

Dans les 2 derniers modes, il est possible de sauvegarder la base de données et de la restaurer telle qu'elle était à n'importe quel point du temps à la seconde près et à la transaction près (avec cependant des limites pour le mode journalisé en bloc). Ce mode permet aussi la sauvegarde de fichiers ou de groupes de fichiers.

Les bases de données ne peuvent fonctionner que lorsque tous les fichiers sont présents.

Les fichiers de données sont regroupés logiquement dans la base de données dans des groupes de fichiers. Ces fichiers et groupes de fichiers peuvent être sauvegardés de façon indépendante à condition de sauvegarder les journaux de transactions en parallèle.

Les services exécutant chaque instance de SQL Server utilisent un compte de service. Ce dernier doit être choisi avec soin pour éviter d'éventuelles failles de sécurités sur le serveur. Celui-ci peut être : Service Système, Service Local (à partir de Windows 2003), Service Réseau (à partir de Windows 2003), compte utilisateur Windows local, compte utilisateur du domaine. L'ordonnanceur ou le planificateur de tâche de SQL Server, l'Agent SQL s'exécute lui aussi sous forme de service, il faut donc lui affecter un compte de service. Celui-ci est généralement différent de celui de l'instance.

SQL Server s'appuie par défaut sur le système d'authentification de Windows (Kerberos ou Natif). On peut donner des droits sur les différents éléments de SQL Server à un groupe ou à un utilisateur. Lors de la connexion à la base de données, l'utilisateur est identifié grâce à son login Windows et accède aux ressources de la base de données auxquelles l'administrateur lui a donné droit par l'intermédiaire de son groupe Windows ou directement à son identifiant. Lors de l'accès à une ressource extérieure, le processus SQL Server agit de 3 manières différentes : par emprunt d'identité lorsque la couche Windows est correctement configuré, l'utilisateur ne peut accéder par l'intermédiaire de SQL Server qu'aux ressources auxquelles il aurait droit s'il y accédait directement ; par le compte de service de l'instance, lorsque l'utilisateur est sysadmin et pour certaines tâches ; il ne permet pas l'accès, dans tous les autres cas.

Comme il existe des cas où l'utilisateur ne peut pas être identifié par son login Windows (utilisation de Linux, d'une page Web...) une méthode d'identification directe à SQL Server peut être mise en place. Elle doit l'être explicitement par l'administrateur de l'instance. Lorsqu'il accède à une ressource extérieure le processus SQL Server agit de 2 manières différentes, par le compte de service de l'instance, lorsque l'utilisateur est sysadmin et pour certaines tâches ; il ne permet pas l'accès, dans tous les autres cas.

Pour l'accès à une ressource extérieure SQL Server 2005 ajoute la possibilité de créer des credentials qui sont des comptes Windows enregistrés juste à cet effet. Les utilisateurs peuvent être associés à ces comptes Windows pour l'accès aux ressources externes.

Lorsqu'un utilisateur est connecté à une instance, il peut disposer de droits sur l'instance elle-même et/ou sur chacune des bases gérées par l'instance. Les droits sur l'instance sont donnés par l'intermédiaire de rôles d'instance prédéfinis. Les droits sur les bases de données sont donnés par l'intermédiaire de rôle de base de données, de groupes windows ou directement à l'utilisateur. Il existe des rôles de bases de données système qui donnent des droits spécifiques sur la base de données et d'autres définis par l'administrateur qui donnent des droits sur les objets. Lorsque l'accès à une instance est donné à un utilisateur ou à un groupe Windows celui-ci dispose d'un espace utilisateur dans lequel peuvent être enregistrés des objets ayant un nom identique à celui d'un autre espace utilisateur. L'espace utilisateur par défaut des administrateurs d'une base de donnée est dbo (database owner).

Il existe au niveau des bases de données des rôle applicatifs auxquels on peut affecter des droits et accessibles par mot de passe. Lorsqu'ils sont utilisés ils remplacent les droits de l'utilisateur courant par les droits affectés au rôle. Ils sont utilisés pour interdire l'accès aux utilisateurs à une base de données par d'autres moyens que l'application qui leur est fournie.

Une table peut contenir jusqu'à 1024 champs dont la somme des tailles n'excède pas 8060 octets. Pour dépasser les 8060 octets il faut utiliser les types de données text, binary et image, leurs valeurs sont stockées dans un espace séparé des autres données. Ces champs ne peuvent pas être inclus dans des index classiques.

À partir de la version 2005 de SQL Server, la limite de 8060 octets peut-être dépassée avec tous les types de longueurs variables. Une constante MAXSIZE a été introduite pour définir la taille des champs au maximum adressable par le moteur de base de données (actuellement 2 giga-octets), elle sert à indiquer la longueur maximale des champs de type varchar(max), nvarchar(max), varbinary(max) qui remplacent respectivement les types text, binary et image qui ont été déclarés obsolètes.

Les enregistrements d'une table peuvent être caractérisés par une clef primaire. La clef primaire est toujours indexée sur SQL Server. D'autres contraintes sont également disponibles au niveau des tables tel que : les contraintes uniques, les valeurs par défaut, les contraintes de vérification (check), les clefs étrangères.

Une vue est une requête nommée de la base de données. Elle est interrogée de la même façon qu'une table.

Les données renvoyées par la vue sont reconstituées à partir des données contenues dans les tables à chaque appel de la vue. SQL Server remplace le nom des vues dans la requête qui va être exécutée par leurs définitions, puis la requête ainsi obtenue est compilée et exécutée par le moteur. Le plan compilé de la requête ainsi obtenue est ensuite stocké pour permettre la réutilisation lors d'un prochain appel.

SQL Server implémente des types particuliers de vues qui sont les vues partitionnées et les vues indexées.

Il ne peut y avoir qu'un seul index clusterisé par table. Les données de la table sont logiquement triées dans l'ordre de l'index clusterisé, ce qui explique qu'il n'y en a qu'un seul. Autrement dit, l'index clusterisé étant un arbre-b, les feuilles de l'index sont directement les lignes dans la table.

Un index non clusterisé ne reflète pas l'ordre physique des lignes de la table.

Les deux types d'index sont construits à partir d'une clé, composée d'un certain nombre de champs. Ils permettent de retrouver rapidement une donnée à partir de tout ou partie des champs de cette clé.

Ainsi, si nous considérons une clé (A, B, C), on peut faire des recherches sur les champs (A), (A, B) et (A, B, C). Les champs sont considérés dans l'ordre de la clé ; il n'est donc pas possible de faire une recherche sur, par exemple (A, C) ou (B, C) avec cet index.

Une table peut contenir 249 index. Chaque index peut contenir 16 champs dont la somme des tailles n'excède pas 900 octets. Les index contiennent en plus des données des champs de l'index un signet (bookmark) vers les données de la table. Celui-ci peut être soit un pointeur vers un enregistrement, soit une des clefs de l'index clusterisé.

L'optimisateur de requêtes de SQL Serveur choisit quel index utiliser. Il est possible qu'il n'utilise pas l'index que vous avez créé car le coût de la recherche via cet index peut être plus grand que simplement lire la table au complet. Pour faire ces choix, l'optimisateur utilise entre autres les statistiques de la table, la présence ou non de contraintes. Il est possible par contre de forcer l'optimisateur à utiliser un index avec la clause WITH(nom_index), cette pratique n'est toutefois pas recommandée.

L'index est organisé en arbre-b. Ceci permet de classer plus rapidement les informations que s'il fallait les insérer dans une table séquentielle. Cette disposition étant très gourmande en ressources de stockage, la version 2005 de SQL Server permet de séparer les données de recherche et des données de traitement intégrées à l'index.

Il n'y a pas d'autre structure d'index que l'arbre-b. On ne trouve pas, par exemple, d'index bitmap, qui permettraient de faciliter les recherches sur des champs aux contenus peu variés.

Il est possible de définir des procédures stockées. Une procédure stockée est une suite d'instructions qui vont avoir des effets sur la base de données ou qui renvoient des valeurs.

Les procédures stockées sous SQL Server peuvent prendre en paramètre et/ou retourner des entiers, des chaînes de caractère, des dates, des curseurs, des tables, des tables virtuelles et tout autre type défini dans SQL Server par défaut ou par les utilisateurs.

Les principaux avantages de l'utilisation des procédures stockées sont : la sécurité accrue, la réutilisation des plans compilés (contrairement aux vues) et la possibilité de gérer les dépendances entre le code SQL et les objets du moteur.

Le déclencheur constitue du code stocké qui s'exécute après (AFTER) ou à la place (INSTEAD OF) d'une action particulière (insertion, modification, suppression) sur une table ou sur une vue. Deux tables virtuelles sont créées pour manipuler les données insérées, modifiées ou supprimées : inserted (pour l'insertion et la modification) et deleted (pour la suppression et la modification). Il est impossible de modifier le contenu des ces tables virtuelles. Le déclencheur particulier INSTEAD OF est utilisable lorsque l'on souhaite intercepter l'événement, ne pas le laisser se dérouler, mais coder une autre action. Ce type de déclencheur est utilisable par exemple dans le cadre d'un mapping relationnel/objet où l'on manipule des vues composées de multiples jointures où l'on souhaite que l'utilisateur puisse faire des mises à jour (INSERT, UPDATE, DELETE) directement sur ces vues. Dans ce cas, les données INSERT, UPDATE ou DELETE sont découpées pour chacune des tables en jeu et une série d'ordre spécifique à chaque table à mettre à voir est lancée au travers une transaction.

Depuis SQL Server 2005, la possibilité de créer des triggers DDL a été ajoutée. Ces déclencheurs DDL agissent après apparition des événements de type CREATE, ALTER ou DROP, et ces événements peuvent être interceptés au niveau du serveur (par exemple un CREATE DATABASE) ou au niveau de la base (par exemple un DROP TABLE). Pour obtenir des détails sur l'événement intercepté, un paquet de données XML (que l'on obtient par la fonction EVENTDATA()) donne de multiples précisions sur l'origine et la nature de l'événement. On y trouve même la requête SQL qui l'a déclenché. Le Service Pack 2 de celui-ci offre même la possibilité de déclenchement sur une connexion. Enfin, il est possible de coder des triggers via .net (SQL CLR) à partir de la version SQL 2005.

Depuis SQL Server 2000, il est possible de créer des fonctions.

Il existe cependant des restrictions quant aux fonctionnalités utilisables dans le corps d'une fonction. Il n'est pas possible d'utiliser de fonctions non déterministes et la fonction ne doit pas modifier des données ou des paramètres système de manière permanente ou durable. Ce qui interdit par exemple l'utilisation d'un INSERT sur une table ou l'utilisation de la fonction GETDATE().

C'est logique, car le but d'une fonction est avant tout d'être utilisée au sein d'une requête.

Cet outil est fourni avec les versions payantes de SQL Server 2005. Il permet de se connecter et d'administrer les différents moteurs SQL Server 2005 (SSRS, SSIS, SSAS et le moteur relationnel). Il permet pour le moteur relationnel de développer des scripts TSQL, avec la possibilité de regrouper l'ensemble de ceux-ci au sein d'une solution (comme sous Visual Studio). On peut aussi enregistrer ceux-ci grâce à Visual SourceSafe ou Team Foundation Server.

Cet outil est téléchargeable gratuitement pour la gestion du moteur relationnel SQL Server 2005 Express Edition. Il permet de se connecter et d'administrer uniquement le moteur relationnel SQL Server 2005. Il permet pour le moteur relationnel de développer des scripts TSQL.

Tout comme SSMS, cet outil est fourni avec les versions payantes de SQL Server 2005. Il s'agit de l'outil de développement Microsoft Visual Studio 2005 adapté pour la création de projets Analysis Services, Integration Services ou Reporting Services. Tous ces projets se retrouvent dans le groupe "Projets Business Intelligence".

Jusqu'à la version 2000, cet outil sert à gérer la base de données de façon entièrement graphique. Il permet en outre d'accéder et de configurer tous les outils annexes de SQL Server. A partir de la version 2005, il est remplacé par SQL Server Management Studio.

Il s'agit d'un outil (fourni jusqu'à la version 2000) permettant d'exécuter des requêtes sur un serveur SQL. Il permet aussi d'analyser le fonctionnement des requêtes pour optimiser la requête elle-même ou la base de données qu'elle interroge. À partir de la version 2005, les fonctionnalités de cet outil sont intégrées à SQL Server Management Studio.

Cet outil permet de capturer l'activité d'une base de données. Il permet aux administrateurs de vérifier les éléments et les requêtes qui prennent du temps sur la base de données. Éventuellement, il est possible de rejouer la capture sur un serveur de test.

Il s'agit du moteur de bases de données. À chaque instance de SQL Server correspond un service Windows Sql Server. Ce service peut être repéré dans les services Windows sous les noms MSSQL$Nom_instance pour les instances nommées et MSSQLServer pour l'instance par défaut.

Chaque instance créée possède au départ 4 à 6 bases de données systèmes. Le moteur SQL Server s'appuie sur la base de données système master qui contient la définition des autres bases de données.

Il s'agit de l'agent de maintenance de l'instance de SQL Server. À chaque instance de SQL Server correspond un service Windows Sql Server Agent. Ce service peut être repéré dans les services Windows sous les noms SQLAgent$Nom_instance pour les instances nommées et SQLAgent pour l'instance par défaut. Le moteur SQL Server Agent s'appuie sur la base msdb. Ce moteur permet de gérer les sauvegardes, les plans de maintenance, les travaux planifiés, la surveillance de la base, les alertes administratives...

L'Agent a aussi comme rôle la surveillance du service de SQL Server et le déclenchement automatique du redémarrage de celui-ci en cas d'arrêt inattendu.

Moteur d'index / recherche de texte intégral.

Connu aussi sous le nom de MS DTC, sert a gérer les transactions distribuées. C’est-à-dire les transactions entre plusieurs serveurs de transactions SQL Server, entre un serveur SQL Server et des serveur de base de données autres, entre plusieurs sources de données différentes qu'ils soient des moteurs de base de données ou de simples composants.

Service apparu sous SQL Server 2000 permet de requêter régulièrement la base de données et en fonction de ces requêtes de notifier des groupes abonnés à ces évènements.

La plateforme décisionnelle SQL Server se compose d'un ETL, apparu avec SQL 7, d'un moteur multidimensionnel, également apparu sous SQL 7 et d'un moteur de rapports, ajouté en 2004 sous SQL 2000. Avec la version SQL Server 2005, un studio de développement dédié au métier du décisionnel a été intégré dans Visual Studio 2005 : BI development Studio.

SQL Server 2008 supporte de nouveau type de données primitives : Le type géographique ou intervient une projection (latitudes et les longitudes) et le type géométrique sans projection pour manipuler les données relatives aux points, aux lignes et aux polygones. Le premier logiciel compatible SQL Server a été le logiciel |Manifold System puis Mapinfo,Geomédia .

Il s'agit d'un outil à part entière qui n'est commercialisé qu'avec SQL Server. Il s'agit d'un outil d'ETL complet. Il permet de transférer des données depuis et vers n'importe quelle base de données pour laquelle des drivers OLE-DB ou ODBC ont été installés sur la machine qui héberge le programme.

Il peut s'appuyer sur msdb, mais il est possible de générer avec l'aide de Visual Basic des programmes indépendants qui tourneront sur un ordinateur ne disposant pas de SQL Server. Il possède également son propre mode de stockage structuré.

Service apparu sous SQL Server 2005, il est le remplaçant de Data Transformation Services. L'ETL a été complètement reconstruit, et se positionne en concurrence des autres outils ETL professionnels du marché. L'objectif est l'intégration de l'entreprise par ses données Microsoft SQL Server 2005 Integration Services (SSIS) est une plate-forme complète d'intégration de données. Il est important de comprendre que Microsoft SQL Server 2005 Integration Services n’est pas simplement un outil d’extraction, de transformation et de chargement (ETL). C’est une plate-forme complète d’intégration de données, offrant un certain nombre d’outils graphiques de développement et de gestion, de services, d’objets programmables et d’interfaces API (Application Programming Interfaces). SSIS contient un moteur de workflow prenant en charge une logique complexe et peut être utilisé pour un large éventail d’opérations de maintenance de base de données et d’opérations sophistiquées de transfert de données. L’architecture SSIS est essentiellement composée de deux parties : le moteur d’exécution de transformation de données, qui gère le flux de contrôle d’un package, et le moteur de flux de données ou moteur de pipeline de transformation de données, qui gère le flux des données à partir des sources de données, via les transformations et jusqu’aux cibles de destination.

Service apparu sous SQL Server 7 connu à cette époque sous le nom de OLAP Services. Il permet de générer des cubes OLAP, données agrégées et multidimentionelles. Il permet également d'implémenter des algorithmes de Data Mining.

Service apparu sous SQL Server 2000 est un moteur de génération d'états. Deux services web le composent, l'un permettant son administration, l'autre la génération, l'abonnement, le rendu des rapports. Les rendus se font sous Excel, PDF et HTML..

Elle supporte un nombre de processeurs et une taille de mémoire vive illimités (limités par le système d'exploitation). Il existe une version 32 bits (x86) et 2 versions 64 bits (ia64 et x64, x64 uniquement pour SQL Server 2005) et n'a pas de limite quant à la taille des bases de données. Elle ne peut s'installer que sur un Windows version serveur. Inclut toutes des fonctionnalités du moteur, dont les fonctions de haute disponibilité. Les fonctionnalités pour le décisionnel sont toutes incluses de la génération d'états avec Reporting Services à l'utilisation de cubes OLAP avec Analysis Services en passant par le transfert de données avec Integration Services (SQL Server 2005) ou Data Transformation Services (SQL Server 7 & 2000). Elle peut en outre fonctionner en cluster jusqu'à 8 nœuds.

Il s'agit d'une édition pour les développeurs qui dispose des mêmes fonctionnalités que l'édition Entreprise. Cependant la licence contient des restrictions quant à son utilisation.

Elle supporte jusqu'à 4 processeurs et une taille de mémoire vive illimitée (limitée par le système d'exploitation). Il existe une version 32 bits (x86) et 2 versions 64 bits (ia64 et x64, les deux uniquement pour SQL Server 2005) et n'a pas de limite quant à la taille des bases de données. Elle ne peut s'installer que sur un Windows version serveur. Cependant SQL Server 2005 permet son installation sur Windows de bureau. Inclus toutes des fonctionnalités du moteur, sauf certaines fonctions de haute disponibilité. Les fonctionnalités pour le décisionnel sont toutes incluses de la génération d'états avec Reporting Services (pour SQL Server 2000, ce composant est à charger séparément) à l'utilisation de cubes OLAP avec Analysis Services en passant par le transfert de données avec Integration Services (SQL Server 2005) ou Data Transformation Services (SQL Server 7 & 2000). Elle peut en outre fonctionner en cluster jusqu'à 2 nœuds depuis sa version 2005.

Nouvelle édition apparue avec SQL Server 2005. Elle supporte jusqu'à 2 processeurs et 3 Go de mémoire vive. Pour le moment elle n'existe qu'en version 32 bits et n'a pas de limite quant à la taille des bases de données. Inclus la majeure partie des fonctionnalités du moteur, dont la possibilité de participer à une réplication en tant qu'éditeur. Les fonctionnalités pour le décisionnel incluses se limitent à la génération d'états avec Reporting Services.

Édition existant avec SQL Server 7 et SQL Server 2000. Elle supporte jusqu'à 2 processeurs et 2 Go de mémoire vive. N'existe qu'en version 32 bits et n'a pas de limite quant à la taille des bases de données. Inclus la majeure partie des fonctionnalités du moteur, dont la possibilité de participer à une réplication en tant qu'abonné. Elle n'a pas de fonctionnalités pour le décisionnel. En termes de licence, le fait de posséder une licence d'accès client (CAL) SQL Server suffit à utiliser cette édition.

Microsoft a édité une édition gratuite composée uniquement du moteur de base de données relationnel, bridé à 4 Go d'espace disque et 5 utilisateurs concurrents en exécution.

Appelée aupravant : Pocket PC / Mobile / Everywhere Edition. Il s'agit d'une édition légère adaptée à l'utilisation sur des PDA ou smartphones munis de Windows Mobile. La version Compact (version 3.5), qui succède aux éditions Mobile s'ouvre elle aux postes de travail classiques à base de Windows. Cette édition peut participer à une réplication en tant qu'abonné.

Le seul type de licence envisageable pour une utilisation de SQL Server derrière un frontal Web est la licence Processeur.

En haut



SQL*Plus

SQL*Plus est un utilitaire en ligne de commande d'Oracle qui permet aux utilisateurs d'exécuter interactivement des commandes SQL et PL/SQL. Une documentation complète pour l'interpréteur de SQL*Plus peut être consultée sur le site web d'Oracle.

En haut



SQL Slammer

Image:Crystal Clear app virus detected.png

Slammer (aussi connu sous le nom de Sapphire) est un ver informatique se propageant grâce à une faille sur les serveurs Microsoft SQL Server.

Cette faille était employée dans les milieux warez pour stocker des fichiers illégalement.

Les 24 et 25 janvier 2003, Slammer s'est propagé sur Internet, ce qui a causé de graves ralentissements du réseau.

Pour se propager, ce ver émettait des paquets UDP vers le port 1434 de ces serveurs, destiné à un usage interne.

Slammer a révélé que certains administrateurs réseaux n'avaient pas appliqué les correctifs nécessaires aux logiciels qu'ils utilisent. En effet, le correctif à cette faille avait été publié 6 mois, jour pour jour, avant la diffusion de Slammer.

En haut



SQL Ledger

Écran d’accueil de SQL Ledger dans le navigateur Mozilla Firefox.

SQL Ledger est un logiciel libre de comptabilité en partie double. Les données comptables sont stockées sur un serveur SQL et un navigateur web ordinaire sert d'interface utilisateur. Ce système utilise le langage Perl et un module Perl de traitement des bases de données ainsi que PostgreSQL, Oracle et DB2 pour le stockage des données.

SQL Ledger est distribué sous les termes de la licence publique générale GNU.

En haut



SQL/MM

SQL/MM est une norme pour contrôler des données spatiales dans des systèmes de bases de données relationnelles.

En haut



Injection SQL

Une injection SQL est un type d'exploitation d'une faille de sécurité d'une application interagissant avec une base de données, en injectant une requête SQL non prévue par le système et pouvant compromettre sa sécurité.

Le pirate peut alors se connecter sous l'utilisateur Dupont avec n'importe quel mot de passe. Il s'agit d'une injection de SQL réussie, car le pirate est parvenu à injecter les caractères qu'il voulait pour modifier le comportement de la requête.

L'apostrophe indique la fin de la zone de frappe de l'utilisateur, le code "or 1=1" demande au script si 1=1 est vrai, or c'est toujours le cas, et -- indique le début d'un commentaire.

Ainsi le script programmé pour vérifier si ce que l'utilisateur tape est vrai, il verra que 1=1 est vrai, et le pirate sera connecté sous la session Dupont.

Ici, la solution consiste à traiter correctement les chaînes de caractères entrées par l'utilisateur.

L'apostrophe de fin de chaîne ayant été correctement dé-spécialisée en la faisant précéder d'un caractère «\».

L'échappement peut aussi se faire (suivant le SGBD utilisé) en doublant les apostrophes.

La marque de commentaire fera alors partie de la chaîne, et finalement le serveur SQL répondra qu'il n'y a aucune entrée dans la base de données correspondant à l'utilisateur Dupont' -- .

La fonction addslashes possède elle-même quelques failles sur certaines versions de PHP qui datent. De plus, elle échappe uniquement les caractères «\», «NULL», «'» et «"». Il serait plus approprié d'utiliser la fonction mysql_real_escape_string qui est justement créée pour échapper les caractères spéciaux d'une commande SQL (NULL, \x1a, \ , \ , \, ', " et \x00).

Note : Pour contrer les injections de code SQL, les "magic quotes" sont utilisées par défaut dans la configuration de PHP. Elles permettent de placer un caractère d’échappement devant les apostrophes. Certaines failles de sécurité, comme le fait de ne pas s’appliquer sur les champs hidden des formulaires, et l’annonce de la disparition de magic_quotes_gpc dans PHP6 nous incitent à remplacer cette option par l’usage systématique de la fonction addslashes() ou mieux : mysql_real_escape_string.

En haut



Source : Wikipedia