SQL SERVER 2005 I Installation et configuration de SQL Server 2005 II - Gestion des bases de données et fichiers III Gestion de la sécurité IV Sauvegarde et restauration Cheikh Ahmadou Bamba CISSE 1
I - Préparation à L installation de SQL Server 2005 Les SQL Server offre plusieurs éditions : o Edition Enterprise : Cette version ne s installe que sur des serveurs. Elle donne la passibilité de faire du business Intelligence. o Standard : Version souvent installé dans des succursales de sortes à être piloté par Enterprise 2005 au niveau de la maison mère. o Work Group 2005 : Cette version est aux groupes de travail. o Express : Elle remplace MSDE o Mobile : pour Windows CE o Developper : C est une copie de la version Enterprise.Elle n est pas destiné à faire de la production.cette édition a toutes les fonctionnalité de Enterprise.On peut l installer sur XP avec une poste locale. Elle est utilisée pour faire des tests o Evaluation : Elle ressemble à l édition developper.elle ne s installe pas sur XP Configuration matérielle Il faut disposer d un processeur compris entre 600Mhz et 1Ghz Cheikh Ahmadou Bamba CISSE 2
Une mémoire minimale de 512Mo (Enterprise, Standard, Work Group ) 112Mo pour express. Il faut aussi disposer d une espace disk minimale de 1 Go Configuration logicielle Avant l installation, Il faut avoir : o OS o Internet Explorer 6 o IIS 5 o Framework 3.0 o Réseau TCP/IP Les instances Les instances sont l ensemble des programmes et des données.elle se définit par : Nom_ordinateur\Nom_instance ; SQL Server permet la création de 15 instances. Considération de sécurité Elle est liée aux types de compte : o Compte utilisateur local o Compte de données o Compte de système local o Moteur de base de données o Composant (Analysis, broker) o Outil (Management studio) Cheikh Ahmadou Bamba CISSE 3
Option de licence Il y a trois types de licences : o Licences par processeur : Chaque processeur sera taxé. Les clients n auront pas besoin de licences o Licence d accès client/serveur plus périphérique : taxé par serveur et par périphérique o Accès client serveur plus utilisateur : Chaque utilisateur qui se connecte occasionne une taxation Voici quelques étapes de l installation : La première étape nous permet de débuter l installation si l utilisateur accepte les termes du contrat La seconde étape consiste laisser le choix à SQL Server qui choisit Les paramètres de configuration pour le bon fonctionnement du logiciel. Cheikh Ahmadou Bamba CISSE 4
Lors de cette étape, SQL Server procède à une analyse complète et affiche un tableau récapitulatif des résultats de la configuration et éventuellement des messages. La quatrième étape nous permet de saisir le nom de la société, celui de l administrateur ainsi que la clé du produit. Cheikh Ahmadou Bamba CISSE 5
Dans cette étape, On choisit l option : (ce composant sera installé en totalité sur le disque dur local). Cheikh Ahmadou Bamba CISSE 6
On choisit l option : Instance nommée. Ensuite, on clique sur suivant et la fenêtre des comptes de résultat s ouvre. C est à ce niveau que qu on choisi le type de connexion. Par défaut il est configuré :(utilisé un compte d utilisateur de domaine). Cheikh Ahmadou Bamba CISSE 7
Dans cette étape, on choisit le mode d authentification. En choisissant le mode mixte, par la suite, on pourra entrer le mot de passe. L étape suivante nous permet de choisir la langue suivant laquelle on veut utiliser SQL Server L étape suivante nous permet d assister à l installation complète de SQL Serveur 2005 qui va prendre quelques minutes. Cheikh Ahmadou Bamba CISSE 8
L installation a désormais pris fin et on peut cliquer sur terminer. Paramètre de classement Ce paramètre permet les opérations de tri. o Vu d ensemble du processus d installation La première phase consiste à l installation de mise à jour des composants L.NET, Framework 2.0 Windows installer 3.1 et du package msi d installation qui nécessite Windows installer 3.1 Les options d installation des composants o Moteur de base de données : o Réplication o Recherche de texte intégral Cheikh Ahmadou Bamba CISSE 9
o Analysis Services (OLAP) o Reportings services o Intégration Services (Transfert des données) o Composants station de travail (ensemble d outils : documentation, base de données test) Les opérateurs o Arithmétiques : +,-,*, /, % o Logique : AND, NOT, OR, XOR o Comparaison : >, <, >=, <=, = Variables DECLARE SET Use Northwind Declare @Empid int, @Name char (20) SET @Empid=101 Commentaire: /* */ On a ici un outil important pour la sécurité. Elle permet d activer, de désactiver, de démarrer d arrêter certains services. Fonctionnalité et connexion distante. Il appartient au composant station de travail. Cet outil est également utilisé pour activer les fonctionnalités du moteur de notre base de donnée : Gestionnaire des configurations Cet outil permet de gérer les services associés SQL serveur de gérer les protocoles réseau et de gérer la configuration des connexions réseau à partir des ordinateurs clients SQL Serveur. Il ne configure pas la connexion distante via TCP/IP. Cheikh Ahmadou Bamba CISSE 10
II Création et gestion d une base de données Une base de données sert à stocker un ensemble de données. Les objets d une base de données nous aide à structurer les données d une base de données et à définir les mécanismes de sécurité, d améliorer la performance et le contrôle d intégrité des données. Parmi ces objets, nous avons : o Table : Elles représentent un ensemble de lignes associées à des colonnes o Contraintes : elles définissent les règles relatives aux autorisées dans les colonnes et vont constituer les mécanismes standard pour garantir l intégrité des données. o Valeurs par défaut : elles définissent les valeurs stockées dans une colonne si aucune valeur n est fournie au moment de l ajout o Index : Ils constituent des structures de stockage offrant un accès rapide pour l extraction des données o Vue : elles permettent de visualiser les données venant d une ou de plusieurs tables d une même base de données o Fonctions définies par l utilisateur : elles vont permettre de renvoyer soit une valeur scalaire, soit une table o Procédures stockées : elles constituent un ensemble d instruction nommées en TSQL pré compiler devant être exécutées ensemble o Déclencheur : ils représentent une forme spéciale de procédure stockées et exécutées automatiquement lorsqu un utilisateur modifie les données d une table ou d une vue. Cheikh Ahmadou Bamba CISSE 11
Gestionnaire de configuration SQL 2005 Il permet de gérer les services associés SQL Server, configurer les protocoles utilisés par SQL Server et gérer la configuration de connexion à partir des ordinateurs client de Sqls. SQL Server Management Studio SQL Management Server est un outil qui permet d exécuter la quasi-totalité des taches d administration. Configuration de la messagerie de base de données La fonctionnalité de messagerie est utilisée pour expédier des messages de type email à partir du moteur de base de données.il est possible d envoyer des messages pour notifier à l administrateur que la mémoire n est pas suffisant.on a deux principaux objets dans cette fonctionnalité. o Compte de messagerie base de données : contient les informations utilisées par SQL Server pour envoyer des messages email par SMTP o Profil de messagerie de la base de données : c est un ensemble de compte de messagerie. Les profils peuvent-etre publique ou privé : o Publique : lorsqu il est alloué au groupe (Database Mail User Role).Les profils publiques sont disponibles pour tous les membres du role contenu dans la base de données système MSBD. Cheikh Ahmadou Bamba CISSE 12
o Privé : défini pour les responsables de sécurité. Création et gestion de base de données Fichier de la base de donnée o Fichier de donnée primaire (.mdf) : contient des infos sur les démarrages de la base de donnée et d autres informations user o Fichiers de données secondaires (.ndf) : Ils ne sont pas obligatoire, mais ils peuvent être créée pour pouvoir stocker les données utilisateur.ils portent l extension.ndf o Fichiers journaux (.ldf) : Ils permettent de récupérer les détails sur toutes les transactions de la base de données et enregistrer toutes les modifications apportées à la base de données. Groupes de fichiers o Groupe de fichiers primaires : C est un ensemble de fichiers primaires et au besoin les fichiers secondaires et autres. o Groupe de fichiers définis par l utilisateur : Il est crée dans l optique de regrouper les fichiers qui ne font pas parti du groupe de fichier primaire, secondaire ou autres. Création d une base de données o Transact_SQL : Create database _nombd On (name=_bambadb, Filename= \Data\_bambadb_dat.mdf, Size=, Maxsize=, Filegrowth= ) Log on Cheikh Ahmadou Bamba CISSE 13
(name=_bambadb_lob, Filename= \Data\_bambadb.ldf, Size=, Maxsize=, Filegrowth= ) Propriétés de la base de données Dans le volet de gauche, on doit avoir la base de données créée. Si elle n apparait il fau t fermer SQL et relancer management studio. En quittant l application une boite de dialogue s ouvre et vous demande d enregistrer le script. o Les schémas :Ils représentent un espace de nommage pour les objets de la base de données. Cheikh Ahmadou Bamba CISSE 14
Nom_base_de_données.nom_schema.nom_objet_bdd Create schema Myscles Create table Myscles.salesdat (SalesId int not null PRIMARY KEY, Sales Amount float not null) III Gestion d une base de données La gestion d une base de données implique des activités comme l ajout, la suppression de fichiers et de groupes de fichiers ainsi que la modification de la taille de fichiers et de groupes.la base de données peut également être supprimée si elle n est plus utilisée. Les secondes opérations sont relatives au déplacement d une base de données d un serveur vers un autre ou d une instance à une autre sur le même serveur.en Cheikh Ahmadou Bamba CISSE 15
plus des taches de maintenances.il arrive parfois que l administrateur de base de données ait à faire d autres taches comme le contrôle de performance d exécution des requête ou le contrôle de la quantité d espace disque libre.une telle analyse permet d améliorer les performances de la base de données. L administrateur est également responsable pour l obtention des informations concernant l efficacité des index crées. L une des taches fondamentales de l administrateur est de maintenir la taille de la base de données.une des méthodes pour y arriver est de réduire la taille de la base de données pour libérer l espace non utilisée. Cet espace libre peut alors être utilisé pour enregistrer d autres objets de la base de données.il faut aussi effectuer des contrôles d intégrité de la base de données pour vérifier que les données sont fiables et consistantes. Modification d une base de données Après avoir crée une base de données, il est peut-être nécessaire d ajouter ou de modifier un fichier ou un groupe de fichiers ou encore de supprimer après une création de base de données.pour effectuer ces opérations,on utilise : ALTER DATABASE espdb add filegroupe EmpFG Cheikh Ahmadou Bamba CISSE 16
Ajout d un groupe de fichier Alter database _espdb Add filegroup EmpFG Alter database _espdb Addfile(name=EmpFGfile1, Filename= \Data\EmpFGFile1.ndf, Size=10, Maxsize=100, Filegrowth=10) To filegroup.empfg Cheikh Ahmadou Bamba CISSE 17
Suppression Pour supprimer des BD il faut faire un clique droit sur la base à supprimer et de faire un clique gauche sur supprimer. Migration d une base de données Pour faire cette tache il est nécessaire de réinstaller SQL server. Après on lance management Studio et on fait : connexion \moteur de base o Il y a 15 instances (ensemble de programmes et de données dans une base de données) dans un serveur de base de données. Cheikh Ahmadou Bamba CISSE 18
Avec TSQL la procédure est : sp_détach_db nomdelabase de donnée true Gestion des statistiques Ils peuvent être créer pour des donnes spécifiques d une table ou d une vue o Create statistics Contact Email : (on person.contact(contactid,emailaddress) o Sp_helpstats Person.contact, All. o Dbcc show_statistics( Person.contact,contactEmail) Cheikh Ahmadou Bamba CISSE 19
Mise à jour de statistiques La commande est : update statistics update statistics Person.contact ContactEmail Reduction d une base de données Il devient essentiel de verifier la taille d une base de données lorsque le volume de données s accroit.l administrateur de base de données doit controler la taille de la base de données pour améliorer les performances de la base de données spécifiées. Cheikh Ahmadou Bamba CISSE 20
Dbcc shrink file Shrink database Extension de la base de données Avec l accroissement du volume de données dans la base, les fichiers d enregistrement peuvent atteindre leur taille maximale, il est nécessaire d augmenter la taille de la base de données pour admettre plus de données. Cheikh Ahmadou Bamba CISSE 21
Réalisation de vérification d intégrité de base de données avec dbcc L instruction dbcc permet en plus de réduire la taille de la base de données, de contrôler l intégrité d une base de données. La première instruction est : dbcc checkdb Cet instruction va nous permettre de contrôler la cohérence et l intégrité de la base de données. Dbcc check alloc permet de contrôler la cohérence de l allocation de l espace disk d une base de données particulière. Cheikh Ahmadou Bamba CISSE 22
Ddbc check table : cette instruction est identique à l instruction ddbc check db qu elle contrôle une seule table ou une vue indexée ou même un index particulier Automatisation d une base de données avec un agent SQL Server Un administrateur de base de données assure la cohérence, la fiabilité et l actualisation des données d une base de données.pour ce faire, certaines taches administratives doivent se faire périodiquement. Dans cette optique, d automatiser leur exécution à l aide de SQL Server Agent. Cheikh Ahmadou Bamba CISSE 23
Création d un opérateur Cheikh Ahmadou Bamba CISSE 24
Création d un travail Cheikh Ahmadou Bamba CISSE 25
Notification d un opérateur : Cheikh Ahmadou Bamba CISSE 26
III - Sécurité de la base de données SQL Server 2005 fait appel à 3 mécanismes pour la sécurité : o Authentification o Autorisation o Validation Tois composants interviennent dans la sécurité au sein de SQL Server 2005.Ce sont les entités de sécurité, les sécurisables et les autorisations Les entités de sécurité Ce sont les entités logiques qui doivent accéder aux ressources de SQL Server Sur Windows : ce sont les comptes utilisateur locaux, les comptes utilisateur à distances, les comptes groupe d utilisateur. Niveau SQL Server On a les identifiants d accès d ensemble des utilisateurs enregistrés et authentifiées par SQL Server Entités de sécurité au niveau base de données Nous avons les utilisateurs base de données.ce sont les comptes d accès ayant l autorisation d accès base de données. Cheikh Ahmadou Bamba CISSE 27
Elles sont localisées à 3 niveaux : -niveau de l environnement windows : ce sont les comptes d utilisateurs locaux ou locale, les groupes Windows, les comptes d utilisateur de domaines. niveau de serveur de base de données SQL serveur 2005 :il y a les identifiants d accès SQL Serveur. C est un ensemble d identité d utilisateur enregistrer et authentifié par SQL Serveur.La seconde entité ce sont les rôles SQL serveur. C est un ensemble de connexion d axé ayant les autorisations similaires. - niveau de la base de données elle-même : en premier il y a les utilisateurs dce base de données :ce sont des compte d accès ayant l autorisation d accéder à une base de donnée ayant des accès similaires. Trois entités jouent le rôle d accès : rôle utilisées pour accéder à la base de données à l aide d une application particulières. Les sécurisables Ce sont des objets auxquels accèdent les entités de sécurité, et d une base de données ou encore un service de base de données.au niveau des encodeurs, il s agit de fichiers utilisés par SQL Server.Ce sont des hiérarchies imbriquées appelées portée. Une portée serveur : Il inclut une connexion d accès d une base de données et des points de terminaison crées au niveau du serveur. o La portée base de données : elle inclut des objets tels que utilisateurs, role d application, assemblage o Portée schéma : Elles inclut des objets tels que Tables, vues, fonctions, procédures et les types contenues dans un schéma. Cheikh Ahmadou Bamba CISSE 28
Les autorisations L accès aux sécurisables par des entités de sécurité peut-être activé ou désactivé en configurant les autorisations. Celles-ci conditionnent les entités de sécurité qui ont accès aux sécurisables. Cheikh Ahmadou Bamba CISSE 29
Création d un compte utilisateur Assignation d autorisation Pour permettre à Boubacar de visualiser toutes les tables du schéma production, une solution est d en faire le propriétaire de ce schéma. On utilise l instruction : create login. Cheikh Ahmadou Bamba CISSE 30
Affectation des rôles Un rôle est un objet de base de données auquel un ensemble d autorisation sont octroyés.les types de rôle : Rôle de base de données fixe Rôle de base de données défini par l utilisateur Rôle d application Role de base de données Cheikh Ahmadou Bamba CISSE 31
Elles sont définis au niveau de la base de données et existent dans chaque base de données Role de la base de données Db_accessadmin Db_backupoperator Db_datareader Db_datawriter Db_ddladmin Db_denydatareader Db.datawriter Db_owner Db_securityadmin Public Autorisations Sauvegarder les opérations Ajoute, modifie ou supprime les données d une tables quelconque Ajoute, modifie ou supprime les objets de la base de données Restreint la lecture des données d une table quelconque Restreint la modification des données d une table quelconque Réalise une activité quelconque de base de données Il crée des schémas, charge des rôles de base de données et les rôles d application Maintient les autorisations par défaut Rôle de base de données défini par l utilisateur Il est possible de créer ses propres rôles de base de données pour grouper plusieurs utilisateurs et les assigner un ensemble commun d autorisations. Ceci Cheikh Ahmadou Bamba CISSE 32
permet de configurer un ensemble commun à assigner à des utilisateurs de base de données. La commande : create role Rôle d application Un role d application est un ensemble de sécurité qui permet à une application de fonctionner avec ses propres privilèges. Create application role Assignation de rôle aux utilisateurs base de données Chaque role se voit assigner un ensemble d autorisation.pour assigner une autorisation à un utilisateur, un role peut-être assigner à un utilisateur ou celui-ci peut être autorisé à devenir un membre du role. Affectation d autorisation Après avoir créer les entités de sécurité, les entités doivent être sécurisable Octroie d autorisation au niveau serveur Create table Create function Create view Create procedure Delete Cheikh Ahmadou Bamba CISSE 33
Execute Insert Select Update Alter any user View database state Octroie d autorisation au niveau du serveur Au niveau de la base de données, les utilisateurs doivent pouvoir accomplir des activités tels que la création d un schéma. Les autorisations octroyées aux éléments sécurisables tels que les utilisateurs, les schémas, les assemblages et les objets services broker. Create asymmetric key Create symetric key Create certificate create contact Create queue Create role Create type Octroie d autorisation au niveau du schéma Au niveau des schémas, les autorisations peuvent étre octroyés por des éléments sécurisables tels que les tables, les vues, les procédures stockées et les types. Ces autorisations sont les suivantes: Create table Create view Create procedure Delete Execute Inset Select Update Cheikh Ahmadou Bamba CISSE 34
Alter any user View database state Exemple: use adventureworks Grant Create procedure To bpoubacar Cheikh Ahmadou Bamba CISSE 35
Cheikh Ahmadou Bamba CISSE 36
Révocation d autorisation Il est parfois nécessaire de supprimer les autorisations octroyées aux utilisateurs Revoke alter On schema ::sales From boubacarz Chiffrement des données En plus restreindre l accès à la base de données, il est possible d ajouter une couche de sécurité supplémentaire. Si les données sont chiffrées, elles restent sécurisé même si un utilisateur non autorisé accède à la base de données. Les données et objets de base de données peuvent-etre chiffrer à l aide de clé et de certificat. Cheikh Ahmadou Bamba CISSE 37
Création de clé Une clé est une valeur qui peut-être appliqué à une première fonction cryptographique pour déchiffrer une valeur de données sécurisée. On distingue les données symétriques ou asymétriques.pour les clés symétriques : c est une valeur utilisées aussi bien pour le chiffrement que pour les déchiffrements des données. Pour la créer on utilise une instruction transact : Clé asymétrique Create symetric Key Symkey With algorithmtriples_des Encryption by password= mot_de_passe Pour les clé asymmetric : Create asymmetric key asymkey With alorithm= RSA_2048 Encription by password== mot de passe Creation de certificat Un certificat peut-être utilise dans une base de données SQL Server pour ajouter un objet de base de données tel qu une procédure stockée ou une fonction. Use Adventureworks Create certificate awcustcert Encryption by password= Mot_de_passe With subject = Cert for Adventureworks custumers, Star_date= 01/04/2008, Expiry date= 09/04/2008 Cheikh Ahmadou Bamba CISSE 38
IV - sauvegarde et restauration de bases de données Identification d une stratégie de sauvegarde Sauvegarde complète Sauvegarde de journal de transaction Sauvegarde fichier journal après défaillance Sauvegarde différentielle Sauvegarde du fichier ou groupe de fichier Sauvegarde partielle et partielle différentielle Sauvegarde de copie seule Sauvegarde complète La sauvegarde complète d une base de donnée sauvegarde l entièreté de la base de donnée en incluant les fichiers de donnée et une partie du journal de transaction. La stratégie de sauvegarde de base de donnée complète peut être mis en uvre si la base de donnée est de petite taille, si elle comporte peut de modification ou si elle est en lecture seule. sauvegarde du journal de transaction La sauvegarde du journal des transactions enregistre les modifications effectuées dans la base de donnée. Ce type de sauvegarde peut être effectué après la création d une sauvegarde complète. Cheikh Ahmadou Bamba CISSE 39
sauvegarde du journal après défaillance Elle permet d éviter la perte de donnée en conservant un enchaînement de journal intact. Une chaîne de journal est une séquence continue de sauvegarde de journaux commençant par une sauvegarde complète. sauvegarde différentielle Elle est effectuée pour minimiser le temps nécessaire pour la restauration d une base de donnée fréquemment modifié. sauvegarde du fichier ou de groupe de fichier Elle peut être effectuée si la taille de la base de données est importante et que la sauvegarde complète prend du temps. Similaire a une sauvegarde complète. La différence repose sur le fait que la sauvegarde partielle ne contient pas tous les groupes de fichiers. Ce type de sauvegarde enregistre uniquement les données du groupe de fichier ayant subi de modifications depuis la sauvegarde la sauvegarde partielle précédente. sauvegarde copie seule Correspond à la création d une copie de la sauvegarde et sa conservation en lieu sûre Cheikh Ahmadou Bamba CISSE 40