CLIENT/SERVEUR SQL SERVER 7 Yonel Grusson
SQL SERVER 7 PLAN Présentation Installation Résultat de l'installation L'administration Par le SQL Par l'interface Création d'une base et d'une table Ajout de données La Sécurité Yonel Grusson
SQL SERVER 7 - Présentation SQL-Server est un SGBD Client-Serveur (cf le cours) qui utilise TRANSACT-SQL dans ses transactions . Client Serveur Requête (Transact-SQL) Résultats (seulement les donnes) Base de Données Application CLIENTE Application SERVEUR : SQL-SERVER (SGBD) Yonel Grusson
SQL SERVER 7 - Présentation L’application cliente s'occupe du traitement et de la présentation des données (en d’autres termes « ce qu’il faut faire avec les données »). SQL-Server : Gère et répartit éventuellement les bases de données (gérer les relations entre les données, assurer leur stockage) Assure la sécurité (sécurité des accès aux bases et aux objets, récupération des données en cas de panne). Yonel Grusson
Installation de SQL SERVER Configuration requise : Processeur : Intel (Pentium) ou Alpha. Mémoire : 64 Mo et plus (fonctionne avec 32 Mo). Système d'exploitation : NT 4 (Server et WS) avec SP 4 ou ultérieur, 2000 (Server et Professionnel), XP. Système de fichiers : NTFS (peut fonctionner avec FAT). Internet Explorer 4.01 SP1 ou ultérieur (nécessaire pour l'affichage de l'Aide en ligne). Attention : SP4 et IE 4 doivent être installés avant SQL Server. Yonel Grusson
Installation de SQL SERVER Yonel Grusson
Installation de SQL SERVER Installation locale Yonel Grusson
Installation de SQL SERVER Yonel Grusson
Installation de SQL SERVER Variante : Installation à distance (depuis la source) Non modifiables Yonel Grusson
Installation de SQL SERVER Yonel Grusson
Installation de SQL SERVER Choix important car irréversible sans une reconstruction complète de TOUTES les bases Yonel Grusson
Installation de SQL SERVER Yonel Grusson
Installation de SQL SERVER Yonel Grusson
Installation de SQL SERVER Ce compte doit exister dans la base des comptes du domaine. Il doit appartenir au groupe «Administrateurs» Il permet l'exécution des deux services : SQL Server et Agent SQL Server Yonel Grusson
Installation de SQL SERVER Variante : Il est possible de différencier les comptes entre les 2 services. Yonel Grusson
Installation de SQL SERVER Yonel Grusson
Résultat de l’installation Le répertoire système (SQL Server proprement dit) BINN : Pour les exécutables BOOKS : Pour l'aide en ligne DEVTOOLS : Outils d'aide au développemt HTML : Pour MMC (console) et SQL Server INSTALL : Scripts générés à l'installation UPGRADE : Pour la mise à niveau de SQL 6.5 vers SQL 7.0 Yonel Grusson
Résultat de l’installation Les bases de données (1) BACKUP : Pour les fichiers de sauvegarde DATA : Pour les bases de données JOBS : Pour les fichiers temporaires de sorties des travaux LOG : Pour les fichiers journaux des erreurs REPLDATA : Répertoire de travail des tâches de réplication Yonel Grusson
Résultat de l’installation Les bases de données (2) Yonel Grusson
Résultat de l’installation Les bases de données (stockage physique) Fichier de données principal (.mdf) Eventt un ou plusieurs fichiers secondaires (.ndf) Un ou plusieurs fichiers journaux des transactions (.ldf) Les tables et les index sont stockés dans des ETENDUES . Une ETENDUE = 8 PAGES de 8 Ko Une ligne ne peut pas s’étendre sur plusieurs pages et sa taille maximum est de 8060 octets. UNE Page = 8 Ko Base de données UNE ETENDUE = 8 Pages de 8 Ko Yonel Grusson
Résultat de l’installation La Bases des comptes NT : Ce compte existait dans la base des comptes du domaine. Il permet l'exécution des deux services : SQL Server et Agent SQL Server Yonel Grusson
Résultat de l’installation Les services NT : 3 services sont installés Yonel Grusson
Résultat de l’installation Les services NT installés sont : MS SQL Server : Ce service traite les requêtes en provenance des clients. Il assure la gestion des données et garantit l'intégrité de la base. MS DTC : (Distributed Transaction Coordinator) Ce service permet à une application cliente de faire appel à plusieurs bases avec une seule transaction (Base de données répartie – cf cours). SQLServerAgent : Ce service gère les tâches planifiées, les alertes et la réplication des bases de données. Yonel Grusson
Résultat de l’installation Les services NT : Démarrage et arrêt Yonel Grusson
Résultat de l’installation Les services NT : Démarrage et arrêt Yonel Grusson
Résultat de l’installation L’accès aux programmes SQL Server ( par l’interface) SQL Gestion des services Administration de SQL Server (Mode Interface) Yonel Grusson
L’administration de SQL Server L'administrateur doit : Installer et configurer les serveurs Gérer le stockage (espace disque initial, surveillance de cet espace et son agrandissement éventuellement physique). Coordonner la création des bases de données et des utilisateurs (la création peut être déléguée). Gérer la sécurité (accès à SQL et permissions des utilisateurs sur les bases et leurs objets). Maintenir le système (gestion des sauvegardes, planification des tâches, surveillance des serveurs et des bases, prévention et réaction aux pannes…). Gérer les données distribuées. Yonel Grusson
L’administration de SQL Server L’administration peut se faire : Soit par l’intermédiaire du SQL Soit par l’intermédiaire d’une interface (Enterprise Manager) Attention : La connexion "SA" (System Administrator) est créé sans mot de passe Yonel Grusson
Utilisation du SQL Aperçu Pour une étude plus approndie, voir cours SQL Yonel Grusson
Utilisation du SQL Yonel Grusson
Utilisation du SQL Yonel Grusson
Utilisation de Enterprise Manager Yonel Grusson
Création d’une base de données Yonel Grusson
Création d’une base de données Création de la base de données : Le fichier des données (.mdf) Yonel Grusson
Création d’une base de données Création de la base de données : Création du journal des transactions (.ldf) Yonel Grusson
Création d’une base de données Résultat dans l’interface Yonel Grusson
Création d’une base de données Résultat sur le disque Yonel Grusson
Création d’une table Yonel Grusson
Création d’une table Yonel Grusson
Création d’une table Yonel Grusson
Création d’une table Les types "CARACTERE" reconnus par SQL-Server sont : CHAR , CHAR(n) : Chaîne de caractères – 1 octet par caractère – n <= 8000 – L'espace de stockage sera toujours de n octets (ajout d'espace éventuellement). VARCHAR, VARCHAR (n) : L'espace de stockage varie selon la longueur de la chaîne – L'espace sera au plus égal à n octets. NCHAR, NCHAR(n), NVARCHAR et NVARCHAR(n) : idem avec des caractères UNICODE – 8000 octets maximum donc 4000 caractères maximum. TEXT et NTEXT : permet de stocker de grande quantité de texte (résumé de livre par exemple). Jusqu'à 2 147 483 647 octets. Yonel Grusson
Création d’une table Les types "NUMERIQUE ENTIER" reconnus par SQL-Server sont : INT (ou INTEGER) : Entier compris entre –231 et + 231 soit sur 4 octets. SMALLINT : Entier compris entre –32768 et +32767 soit sur 2 octets. TINYINT : Entier compris entre 0 et 255 soit sur 1 octet. Les types "BINAIRE" sont : BINARY(n) et VARBINARY(n) : Ensemble de bits (n<=8000). Yonel Grusson
Création d’une table Les types "NUMERIQUE APPROCHE" (en Virgule Flottante) reconnus par SQL-Server sont : REAL : Compris entre 3,4E-38 et 3,4E+38 avec une précision de 7 chiffres (sur 4 octets). FLOAT : Compris entre 1,7E-308 et 1,7E+308 avec une précision de 15 chiffres (sur 8 octets). FLOAT(n) : Le nombre d'octets alloué égal n donc augmente ou diminue la précision. Yonel Grusson
Création d’une table Les types "NUMERIQUE EXACT" reconnus par SQL-Server sont : DECIMAL(p,s) ou NUMERIC(p,s) : avec "p" représente le nombre de chiffres total et "s" le nombre de chiffres après la virgule. Les types "DATE" reconnus par SQL-Server sont : DATETIME : Du 1/1/1753 au 31/12/9999. Sur 8 octets SMALLDATETIME : Du 1/1/1900 au 6/6/2079. Sur 4 octets Yonel Grusson
Création d’une table Les types "MONETAIRE" reconnus par SQL-Server sont : MONEY : Pour les valeurs entre –922337203685477,5808 et +922337203685477,5807. SMALLMONEY : Pour les valeurs entre –214748,3648 et +214748,36487. MONEY occupe 2 fois plus d'espace que SMALLMONEY. Yonel Grusson
Création de l’index Yonel Grusson
Création d’une table Yonel Grusson
Ajout de données Yonel Grusson
Ajout de données Yonel Grusson
La SECURITE 1 - La sécurité sous SQL-Server se situe à trois niveaux : Le rattachement au domaine dans lequel se situe SQL-Server qui repose sur un ID de connexion (Login ou nom d'accès et un mot de passe), La possibilité d’utiliser le SGBD. SQL-Server parlera ici de CONNEXION. L'utilisation d'une base de données qui permet de restreindre l'accès ou l'utilisation des objets de la base. SQL-Server parlera ici d’UTILISATEUR. Yonel Grusson
La SECURITE 2 - La sécurité peut être implémenté selon 2 modes : SQL-Server + Windows NT (mode dit "standard") SQL-Server est totalement responsable de la gestion et de la maintenance des comptes. C'est la méthode préconisée car elle est compatible avec Sybase, SQL Server 4.2, 6.0 et 6.5 Windows NT seulement (mode dit "intégré") SQL-Server s’appuie exclusivement sur le système d’authentification du serveur Windows NT. Le choix entre ces deux modes se fait a l'installation mais peut être modifié. Yonel Grusson
Modification de la sécurité à l'aide de : La SECURITE Modification de la sécurité à l'aide de : "Propriétés de SQL Server" Yonel Grusson
UNE Connexion SQL-Server La SECURITE SQL-Server Base1 UtilisateurA Base2 UtilisateurB BaseN UtilisateurX ............ UNE Connexion SQL-Server UNE Connexion NT Yonel Grusson
La SECURITE Au niveau d'une base de données : Un utilisateur est unique Un utilisateur est associé à une et une seule connexion Une connexion quant à elle : Est aussi unique Peut être rattachée plusieurs utilisateurs Yonel Grusson
Nouvelle connexion (état initial): La SECURITE Nouvelle connexion (état initial): "DOMSQL\GrussonSQL1" s'appuie sur une authentification NT "Sa" s'appuie sur une authentification SQL Server Yonel Grusson
La SECURITE Nouvelle connexion : Yonel Grusson
La SECURITE Nouvelle connexion : Le compte NT doit déjà existé pour installer une authentification NT Yonel Grusson
La SECURITE Nouvelle connexion : En précisant une base de connexion, vous créez automatiquement un utilisateur portant le même nom sur cette base. Sinon, laisser la base "Master" Yonel Grusson
Nouvelle connexion (état final) : La SECURITE Nouvelle connexion (état final) : Yonel Grusson
La SECURITE Nouvel Utilisateur: Une fois la connexion créée, il est possible d'y rattacher des utilisateurs. Etat initial : Vous disposez d’une connexion MADRID Yonel Grusson
La SECURITE Nouvel Utilisateur: État initial sur la base COMIX Yonel Grusson
La SECURITE Nouvel Utilisateur: Liste des connexions n’ayant aucun utilisateur pour cette base Yonel Grusson
La SECURITE Nouvel Utilisateur: État final Yonel Grusson
La SECURITE Permissions de l ’utilisateur nouvellement créer sur les objets de la base : Yonel Grusson
La SECURITE Permissions de l’utilisateur nouvellement créer sur les objets de la base : Attention : Par défaut l'utilisateur nouvellement crée n'a AUCUN privilège sur les objets de la base Yonel Grusson
La SECURITE Il est également possible de rattacher un utilisateur à une ou plusieurs bases de données lors de la création de la connexion correspondante. Yonel Grusson
La SECURITE Exemple de l'impact des privilèges au travers d'une requête SQL : Connexion Yonel Grusson
qui n ’a aucun privilège La SECURITE qui n ’a aucun privilège Yonel Grusson
La SECURITE Sans autorisation : Yonel Grusson
La SECURITE Autoriser la commande SELECT : Attention : Le privilège est ici accordé sur la seule table « Album » Yonel Grusson
La SECURITE Avec autorisation : Yonel Grusson
La SECURITE Une autre solution consiste à donner le rôle db-datareader mais cette fois sur toute la base Yonel Grusson
La SECURITE Connexion/Groupe NT : La notion de groupe n'existe pas dans SQL Server 7. Par contre, il est possible de rattacher une connexion SQL Server à un groupe NT (authentification NT dans ce cas) Yonel Grusson
La SECURITE Nouvelle connexion : Yonel Grusson
La SECURITE Nouvelle connexion : Yonel Grusson
La SECURITE Nouvel Utilisateur : Tous les membres du groupe NT "UserSQL" pourront utiliser la base "NorthWind" sous l'utilisateur "Commercial" Yonel Grusson
La SECURITE Les ROLES : Au niveau du serveur. Ils permettent à des connexions d'avoir des droits administratifs (en particulier par l'intermédiaire des procédure stockées) Au niveau des bases de données qui affectent des droits au utilisateurs d'une base de données Il est possible de créer des rôles. Yonel Grusson
La SECURITE Les ROLES : Sur le serveur SQL Yonel Grusson
La SECURITE Les ROLES : sur les bases de données Yonel Grusson