Yonel Grusson 1 SQL SERVER 2000 CLIENT/SERVEUR
Yonel Grusson 2 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é SQL SERVER
Yonel Grusson 3 SQL SERVER - Présentation Client Serveur Application CLIENTE Application SERVEUR : SQL-SERVER (SGBD) Base de Données Requête (Transact-SQL) Résultats (seulement les données) SQL-Server est un SGBD Client-Serveur (cf. le cours) qui utilise TRANSACT-SQL dans ses transactions.
Yonel Grusson 4 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). SQL SERVER - Présentation
Yonel Grusson 5 Installation de SQL SERVER Configuration requise : Processeur : Intel ou compatible. Mémoire : 64 Mo et plus (128 Mo ou plus recommandé). Système d'exploitation : NT 4 (Server et WS) avec SP 5 ou ultérieur, 2000 (Server et Professionnel), 2003 Server (avec SQL-Server SP3 ou ultérieur) Système de fichiers : NTFS (peut fonctionner avec FAT). Internet Explorer 5.0 (nécessaire pour l'affichage de l'Aide en ligne). Internet Information Services (IIS) s'il existe des applications XML.
Yonel Grusson 6 Installation de SQL SERVER Attention : SQL-SERVER 2000 n'est pas supporté par Windows 2003 Server : Continuer l'installation à la suite du message : "SQL Server 2000 n'est pas pris en charge par cette version de Windows." apparaissant au début de l'installation. Installer immédiatement après l'installation du SGBD le service pack 3 ou ultérieur de SQL- Server.
Yonel Grusson 7 Vérifier les composants requis avant de lancer l'installation Installation de SQL SERVER
Yonel Grusson 8 L'installation peut se faire sur une machine distante Installation de SQL SERVER Installation locale Il est possible d'installer plusieurs instances de SQL sur le même serveur.
Yonel Grusson 9 Installation de SQL SERVER
Yonel Grusson 10 Installation de SQL SERVER
Yonel Grusson 11 Installation de SQL SERVER Personnalisation de l'installation
Yonel Grusson 12 Installation de SQL SERVER Désignation des comptes sous lesquels sont exécutés les services de SQL-Server Ce compte doit exister dans l'Active Directory. Il doit appartenir au groupe «Administrateurs». Il permet l'exécution des deux services : SQL Server et Agent SQL Server
Yonel Grusson 13 Installation de SQL SERVER Variante : Il est possible de différencier les comptes entre les 2 services.
Yonel Grusson 14 Installation de SQL SERVER SQL-SERVER peut authentifier les utilisateurs : En s'appuyant sur l'authentification Windows
Yonel Grusson 15 Installation de SQL SERVER SQL-SERVER peut authentifier les utilisateurs : En complétant la précédente par une authentification supplémentaire propre au SGBD. Attention : La connexion "SA" (System Administrator) peut être créée sans mot de passe – A éviter
Yonel Grusson 16 Installation de SQL SERVER Choix important car irréversible sans une reconstruction complète de TOUTES les bases.
Yonel Grusson 17 Installation de SQL SERVER Mécanisme de communication interprocessus (IPC) que SQL Server utilise pour assurer la communication entre les clients et les serveurs (cf. cours) Le port sera ici attribué dynamiquement au démarrage de l'instance du SGBD. SQL-SERVER utilise le port UDP 1434 pour la connexion depuis les clients puis le port 1433.
Yonel Grusson 18 Installation de SQL SERVER
Yonel Grusson 19 Installation de SQL SERVER Installation du service Pack 3 ou ultérieur
Yonel Grusson 20 Installation de SQL SERVER
Yonel Grusson 21 Installation de SQL SERVER
Yonel Grusson 22 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éveloppem ent HTML : Pour MMC (console) et SQL Server SCRIPTS : Scripts générés à l'installation TEMPLATES :
Yonel Grusson 23 Les bases de données (1) Résultat de l’installation 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 24 Les bases de données (2) Résultat de l’installation
Yonel Grusson 25 Résultat de l’installation Les bases de données (stockage physique) Les bases de données SQL-Server sont constituées de 3 types de fichiers : Les fichier de données primaires (.mdf) Point de départ de toutes les bases. Chaque base comprend un et un seul fichier primaire qui pointe sur les autres fichiers de la base de données. Les fichiers de données secondaires (.ndf) Les fichiers journaux (.ldf) Ils contiennent toutes les informations de suivi nécessaires à la récupération de la base de données.
Yonel Grusson 26 Les bases de données (stockage physique) Fichier de données principal (.mdf) Event t un ou plusieurs fichiers secondaires (.ndf) Fichier de données principal (.mdf) Event t 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 Résultat de l’installation
Yonel Grusson 27 Dans l'Active Directory Ce compte d’administration existait dans l'Active Directory avant l'installation de SQL-Server. Il permet l'exécution des deux services : SQL Server et Agent SQL Server. Résultat de l’installation
Yonel Grusson 28 Les services Résultat de l’installation MSDTC s’exécute sous le compte : NT AUTHORITY\NetworkService Ce service s’exécute sous le compte syteme local
Yonel Grusson 29 Les services Résultat de l’installation Ces 2 services s’exécutent sous le compte d’administration défini à l’installation
Yonel Grusson 30 Les principaux services 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. Résultat de l’installation
Yonel Grusson 31 Démarrage et arrêts des services : Automatiquement au démarrage du serveur Par l’intermédiaire du bureau Résultat de l’installation
Yonel Grusson 32 Administration de SQL Server ( par l’interface) Administration de SQL Server (Mode Interface) Résultat de l’installation SQL Gestion des services
Yonel Grusson 33 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 34 L’administration peut se faire : Soit par l’intermédiaire du SQL Soit par l’intermédiaire d’une interface (Enterprise Manager) L’administration de SQL Server
Yonel Grusson 35 Utilisation du SQL Pour une étude plus approndie, voir cours SQL Aperçu
Yonel Grusson 36 Utilisation du SQL Choisir la base de données 1 – Tapez votre requête SQL 2 – Exécutez votre requête SQL 3 – Enregistrez votre requêtes SQL
Yonel Grusson 37 Utilisation de Enterprise Manager Rappel : Les manipulations montrées ici avec l’interface graphique peuvent évidemment se faire avec le SQL.
Yonel Grusson 38 Utilisation de Enterprise Manager
Yonel Grusson 39 Création d’une base de données
Yonel Grusson 40 Création d’une base de données Création de la base de données : Le fichier des données (.mdf)
Yonel Grusson 41 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 42 Création d’une base de données Résultat dans l’interface
Yonel Grusson 43 Création d’une base de données Résultat sur le disque Plus mise à jour des tables système (base master)
Yonel Grusson 44 Création d’une table
Yonel Grusson 45 Création d’une table Création de l’index Enregistrer
Yonel Grusson 46 Création d’une table Définir une contrainte d’intégrité référentielle
Yonel Grusson 47 Création d’une table
Yonel Grusson 48 Création d’une table
Yonel Grusson 49 Création d’une table Les clés regroupent : Les clés primaires (identifiant) Les clés externes Les index correspondent à des propriétés fréquemment utilisés et permettent d’optimiser l’accès celles-ci.
Yonel Grusson 50 Création d’une table Les contraintes (CHECK en SQL) permettent de définir des règles sur les propriétés d’une table. Par exemple définir un domaine de validité pour une valeur numérique.
Yonel Grusson 51 Création d’une table
Yonel Grusson 52 Création d’une table
Yonel Grusson 53 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'à octets.
Yonel Grusson 54 Création d’une table Les types "NUMERIQUE ENTIER" reconnus par SQL-Server sont : INT (ou INTEGER) : Entier compris entre –2 31 et soit sur 4 octets. SMALLINT : Entier compris entre –32768 et soit sur 2 octets. TINYINT : Entier compris entre 0 et 255 soit sur 1 octet. Les types "BINAIRE" sont : BINARY, BINARY(n), VARBINARY, VARBINARY(n) : Ensemble de bits (n<=8000).
Yonel Grusson 55 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 56 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 57 Création d’une table Les types "MONETAIRE" reconnus par SQL-Server sont : MONEY : Pour les valeurs entre – ,5808 et ,5807. SMALLMONEY : Pour les valeurs entre –214748,3648 et , MONEY occupe 2 fois plus d'espace que SMALLMONEY.
Yonel Grusson 58 Ajout de données
Yonel Grusson 59 Ajout de données
Yonel Grusson 60 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 et un mot de passe), La possibilité d’utiliser SQL-Server, on 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 61 2 – L'authentification de la CONNEXION peut se faire de 2 façons : SQL-Server + Windows : SQL-Server authentifie les connexions correspondant à des utilisateurs Windows et à celles définies au sein de SQL-Server. Windows uniquement : SQL-Server authenfie seulement les utilisateurs Windows. Le choix se fait a l'installation mais peut être modifié par la suite. La SECURITE
Yonel Grusson 62 La SECURITE Modification de la sécurité à l'aide de : "Propriétés de l’instance de SQL Server"
Yonel Grusson 63 La SECURITE SQL-Server Base1 UtilisateurA Base2 UtilisateurB BaseN UtilisateurX UNE Connexion spécifique SQL-Server UNE Connexion Windows OU Reprise de la Connexion Windows
Yonel Grusson 64 Ainsi …. Au niveau d'une base de données : Un utilisateur est unique Un utilisateur est associé à une et une seule connexion Au niveau du SGBD, une connexion quant à elle : Est unique Peut être rattachée plusieurs utilisateurs La SECURITE ConnexionUtilisateurBase 0,n1,1 1,n
Yonel Grusson 65 Nouvelle connexion (état initial): "CLAPTON/Eric_SQL" s'appuie sur une authentification Windows "sa" s'appuie sur une authentification SQL Server La SECURITE
Yonel Grusson 66 Nouvelle connexion Windows uniquement : La SECURITE L'utilisateur doit déjà exiter Création d'un utilisateur "JOLIE" sur la base "Comix"
Yonel Grusson 67 La SECURITE Nouvelle connexion Windows SQL-Server: Création d'un utilisateur "MONNOT" sur la base "Comix"
Yonel Grusson 68 La SECURITE A la suite de sa connexion Windows l'utilisateur "JOLIE" ("CLAPTON/JOLIE") doit avoir le droit d'accéder à la base "Comix" ; vérification :
Yonel Grusson 69 La SECURITE Résultat sur la base de données "Comix"
Yonel Grusson 70 Il est également possible, lors de la création d'une connexion, de rattacher cette connexion à plusieurs bases de données. La SECURITE
Yonel Grusson 71 Nouvelle connexion (sans création d'un utilisateur) : La SECURITE Laisser la base "master"
Yonel Grusson 72 Nouvel Utilisateur: Une fois une connexion créée, si aucun utilisateur ne lui a été reliée, il sera possible d'y rattacher des utilisateurs. La SECURITE Liste des connexions disponibles pour la base "Comix" Nom de l'utilisateur, par défault ce nom est identique à celui de la connexion
Yonel Grusson 73 La SECURITE Il faut bien comprendre que la notion d'utilisateur d'une base de SQL-Server est transparente pour l'utilisateur de la base ("la personne qui utilise la base"). L'utilisateur ("la personne") se connecte sur SQL-Server et demande à utiliser telle base de données. De ce fait il devient l'utilisateur SQL (correspondant à la connexion) de cette base. Rappel : Sur une base, une connexion correspond un et un seul utilisateur.
Yonel Grusson 74 La SECURITE Relation : Authentification / Connexion (1) L'utilisateur "LeChef" s'est connecté sur le domaine "Clapton". Soit la configuration suivante… "Monnot" est une connexion SQL-Server Par contre … Ici seule l'authentification Windows est acceptée.
Yonel Grusson 75 La SECURITE Relation : Authentification / Connexion (2) Soit la configuration suivante… "Monnot" est une connexion SQL-Server Et … Les deux types de connexion sont ici acceptés.
Yonel Grusson 76 Le droit accordé à un utilisateur pour accéder à une base de données ne permet pas à cette utilisateur de manipuler cette base L'administrateur de la base doit donc accorder aux utilisateurs des permissions sur les objets de la base. Les objets regroupent les tables (et les opérations sur elles), différentes procédures stockées et des vues. La SECURITE
Yonel Grusson 77 L'utilisateur a néamoins quelques autorisations sur une base de données. Il obtient ces autorisation par son appartenance a un ROLE (cf. plus loin). Un utilisateur appartient par défaut au rôle PUBLIC (cf. plus loin). Attention : Si une autorisation n'est pas spécifiquement définie au niveau de l'utilisateur ; ce dernier subit l'autorisation définie au niveau du rôle. La SECURITE
Yonel Grusson 78 Permissions sur les objets d'une base pour un utilisateur nouvellement créer La SECURITE
Yonel Grusson 79 La SECURITE Attention : Par défaut l'utilisateur nouvellement crée n'a AUCUNE autorisation sur les objets de la base. Il subit donc les autorisations du ou des rôle(s) auquel il appartient Permissions d'un utilisateur nouvellement créer sur les objets d'une base
Yonel Grusson 80 La SECURITE Permissions d'un utilisateur nouvellement créer sur les objets d'une base Aucune autorisation n'est spécifiquement définie Le SELECT est spécifiquement refusé Le UPDATE est spécifiquement autorisé Ces autorisations ne sont pas définies. Application du rôle
Yonel Grusson 81 Liste des procédures stockées utilisables par les utilisateurs de la base La SECURITE
Yonel Grusson 82 Les ROLES : Il est évident que plusieurs utilisateurs d'une base de données auront les mêmes permissions sur cette base. Comme pour des permissions sur les fichiers et les répertoires, il sera possible de regrouper ces utilisateurs au sein de groupes. SQL-Server ne parlera pas de groupe mais de rôle et distinguera différents rôles définis sur deux niveaux (le SGBD et la base). La SECURITE
Yonel Grusson 83 Les ROLES : Au niveau du serveur : Ils permettent à des connexions d'avoir des droits administratifs (en particulier par l'intermédiaire des procédures stockées) Au niveau des bases de données : Ils permettent d'affecter des droits aux utilisateurs des bases de données Il est possible de créer des rôles. La SECURITE
Yonel Grusson 84 La SECURITE Les ROLES : Au niveau d'une base de données Tout nouvel utilisateur est affecté par défaut au rôle "public" Aucune autorisation donnée par défaut sur la base de données Quelques autorisations sont définies sur les procédures, les tables système et les vues. Aucune autorisation donnée par défaut sur la base de données Quelques autorisations sont définies sur les procédures, les tables système et les vues.
Yonel Grusson 85 La SECURITE Les ROLES : Création d'un rôle
Yonel Grusson 86 La SECURITE Les ROLES : Création d'un rôle Pour finir, il reste à donner des autorisations aux actuels et futurs utilisateurs de la base qui sont ou seront rattachés à ce rôle.
Yonel Grusson 87 La SECURITE Rôle de base de données Description db_owner Possède toutes les autorisations de la base de données. db_accessadminPeut ajouter ou supprimer des utilisateurs. db_securityadmin Peut gérer toutes les autorisations, les propriétés d'objet, les rôles et les membres des rôles Rôle prédéfinis sur une base de données :
Yonel Grusson 88 La SECURITE Rôle de base de données Description db_ddladmin Peut lancer l'instruction ALL DDL mais pas les instructions GRANT, REVOKE ou DENY. db_backupoperator Peut lancer les instructions DBCC, CHECKPOINT et BACKUP. db_datareader Peut sélectionner toutes les données de toutes les tables utilisateur dans la base de données. Rôle prédéfinis sur une base de données :
Yonel Grusson 89 La SECURITE Rôle de base de données Description db_datawriter Peut modifier les données de toutes les tables utilisateur dans la base de données. db_denydatareader Ne peut sélectionner des données d'aucune table utilisateur dans la base de données. db_denydatawriter Ne peut modifier les données d'aucune table utilisateur dans la base de données. Rôle prédéfinis sur une base de données :
Yonel Grusson 90 La SECURITE Les ROLES : Au niveau du serveur
Yonel Grusson 91 La SECURITE Rôle de serveurDescription sysadmin Exécute n'importe quelle opération dans SQL Server. Les autorisations de ce rôle s'étendent à tous les autres rôles de serveur fixes. serveradminConfigure les paramètres au niveau du serveur. setupadmin Ajoute et supprime les serveurs liés et exécute certaines procédures système stockées telles que sp_serveroption. securityadminGère les connexions d'accès au serveur. Rôles au niveau du serveur SQL :
Yonel Grusson 92 La SECURITE Rôle de serveurDescription processadmin Gère les traitements s'exécutant dans une instance de SQL Server. dbcreatorCrée et modifie les bases de données. diskadminGère les fichiers sur disque. bulkadminExécute l'instruction BULK INSERT. Rôles au niveau du serveur SQL :
Yonel Grusson 93 Exemple de l'impact des permissions au travers d'une requête SQL : La SECURITE
Yonel Grusson 94 La SECURITE Les autorisations sont contradictoires
Yonel Grusson 95 La SECURITE L'autorisation la plus restrictive l'emporte (c'est une règle générale).
Yonel Grusson 96 La SECURITE
Yonel Grusson 97 La SECURITE Les autorisations du rôle s'imposent.
Yonel Grusson 98 Si plusieurs utilisateurs Windows sont susceptibles de se connecter sur SQL-Server, l'administrateur à la possibilité d'associer une connexion SQL à un groupe Windows La SECURITE User1 User2 User3 User4 Connexion1 Connexion2 Connexion3 Connexion4 SQL-Server Connexion SQL-Server User1User2User3User4 Groupe Windows
Yonel Grusson 99 La SECURITE Soit un groupe Windows créer dans l'active Directory
Yonel Grusson 100 Nouvelle connexion : La SECURITE Etat initial Etat final
Yonel Grusson 101 Nouvel Utilisateur : Tous les membres du groupe "UserSQL" pourront utiliser la base "Comix" sous l'utilisateur "Lecteur" La SECURITE Nouvel Utilisateur :
Yonel Grusson 102 La SECURITE Application : Soit la connexion sur SQL-Server de l'utilisateur "PIERRE" qui appartient au groupe Windows "UserSQL", depuis un poste du réseau. La connexion de "Pierre" est acceptée du fait qu'il appartient au groupe "UserSQL" sur lequel repose la connexion SQL.