Mise en œuvre et administration 1
2 Plan du cours Présentation Installation et configuration Outils de gestion Objets de base de données Gestion des fichiers Sécurité Backups et restauration
3 Plan du cours Automatisation des tâches Monitoring Transfert de données Introduction à la réplication
4 SQL Server Présentation
5 Plan du chapitre Introduction Versions de SQL Server Licences Systèmes d exploitation associés
6 Introduction Système de gestion de base de donnée OLTP et OLAP Développé par Microsoft Première version : 1989 (Sybase SQL Server) Dernière version : 2008 (v10)
7 Versions SQL server existe en plusieurs versions Les fonctionnalités, le prix et les domaines d utilisation varient d une version à l autre
8 Versions SQL Server Express Gratuite, disponible sur le site de Microsoft Peut être utilisée en environnement de production Limitations : Un seul CPU supporté Maximum 1 Go de RAM utilisable Maximum 4 Go de données par Base de données (sans compter le log) Fonctionnalités avancées non disponibles (Profiler, job scheduler, Import/export )
9 Versions SQL Server Mobile Version allégée pour les périphériques mobiles (PDA, Smartphones, systèmes embarqués ) Très limitée
10 Versions SQL Server Workgroup Limitations : Deux CPU supportés maximum Maximum 3 Go de RAM utilisable Plusieurs fonctionnalités avancées non disponibles Partitionnement Vues indexées
11 Versions SQL Server Standard Existe en version 64 bits Limitations : Quatre CPU supportés maximum Plusieurs fonctionnalités avancées non disponibles Partitionnement Vues indexées
12 Versions SQL Server Entreprise Existe en version 64 bits Toutes les fonctionnalités sont disponibles Ne peut être installée que sur un OS serveur (sauf la version d évaluation) SQL Server Développeur Identique à la version entreprise Ne peut pas être utilisée en environnement de production
13 Licences En plus de l achat du logiciel, des licences doivent être achetées Il existe plusieurs possibilités Licence par processeur Licence par utilisateur Licence par poste client A vous de choisir la formule la plus économique
14 Systèmes d exploitation Les version de production tournent uniquement sur un Os serveur Le support de vista et windows serveur 2008 a commencé avec le SP2 de SQL Server 2005
15 SQL Server Installation et configuration
16 Plan du chapitre Composants requis Notion d instance Installation d une instance Suppression d une instance Installation non assistée Labo
17 Composants requis Pour s installer complètement, SQL Server a besoin des composants suivants : Internet Explorer 6.0 SP1 ou plus (requis pour Microsoft Management Console) Internet Information Services (IIS) 5.0 ou plus (requis pour Reporting Services) TCP/IP networking.net Framework 2.0 (l installera si nécessaire) Windows Installer 3.1 (l installera si nécessaire)
18 Notion d instance Il est possible d installer plusieurs serveurs SQL Server sur une même machine On parlera alors d «instances» Les instances sont complètements indépendantes au niveau mémoire, processus et stockage de données
19 Notion d instance La première instance SQL Server installée est l instance par défaut Les autres instances sont des «instances nommées» Une instance est identifiée de la façon suivante : NomDeLaMachine\NomDeL instance
20 Notion d instance L instance par défaut est nommée MSSQLSERVER Si l on ne spécifie pas de nom d instance, c est elle qui sera utilisée La version Express d SQL Server installe une instance nommée SQLEXPRESS
21 Installation d une instance Mise à jour des composants Vérification de la config système Enregistrement Installation des composants Nom de l instance Gestion des comptes services Mode d authentification Règles de tri
Mise à jour des composants 22
23 Mise à jour des composants Vérifie les composants suivants et les installe si nécessaire: Windows installer 3.1.Net Framework 2.0 SQL Server Setup support files
Vérification de la config système 24
25 Vérification de la config système vérifications du système Suggère des solutions en cas d incompatibilités Génère un rapport
Enregistrement 26
Installation des composants 27
28 Installation des composants SQL Server se présente sous la forme de services Windows Selon l utilisation que vous faites d SQL Server, il est inutile d installer certains services
29 Installation des composants Liste des composants SQL Server Database Services Composant et service de base Moteur de base de données Réplication, Index FullText etc. Analysis Services Serveur et outils pour supporter OLAP et le data mining Reporting Services générer et distribuer des rapports
30 Installation des composants Liste des composants Intégration Services Outils d import et export de données ETL (Extract Transform Load) Workstation Components, Book online and development tools Outils et documentation Bases de données d exemple
31 Installation des composants «advanced» examiner le détail des composants installés affiner votre choix Vérifier l espace disque requis Certains composants ne peuvent être installés qu en passant par cette section
Nom de l instance 32
33 Nom de l instance Choisissez entre créer l instance par défaut ou ajouter une instance nommée Vérifier les instances déjà installées
Gestion des comptes services 34
35 Gestion des comptes services Un service utilise un compte Windows Compte par défaut : compte système local Pour une gestion plus pointue de la sécurité, utilisez un compte personnalisé
36 Gestion des comptes services Services SQL Server SQL Server Moteur de base de donnée Les autres services en dépendent SQL Server Agent Exécute les tâches automatisées (jobs) Analysis Services analyse OLAP data mining
37 Gestion des comptes services Services SQL Server Reporting Services Moteur de reporting SQL Server Browser Fournit les informations de connexion aux clients Démarrage de services Choisissez quels services démarrent à la fin de l installation (et de manière automatique ensuite)
38 Gestion des comptes services Types de comptes Compte utilisateur de domaine A utiliser si votre service doit accéder à des ressources sur une autre machine du domaine Compte service local Compte limité à la machine locale Compte service réseau Microsoft recommande de ne pas utiliser ce type de compte
39 Gestion des comptes services Comptes séparés Chaque service devrait tourner avec uniquement les droits dont il a besoin Des comptes séparés vous permettront de ne donner des droits que pour les services en ayant besoin Cas où la séparation des droits est nécessaire : Il est recommandé pour le service Sql server d utiliser un compte domaine à droits minimaux Le compte du SQL Server Agent peut avoir besoin de droits administrateur si des jobs CmdExec ou ActiveScript sont créés par un utilisateur n ayant pas ces droits
Mode d authentification 40
41 Mode d authentification Activer ou non l authentification mixte Dans le cas où l authentification SQL Server est activée, spécifier le mot de passe du compte SA Ce point sera expliqué en détail dans le chapitre de sécurité
42 Mode d authentification Activer ou non l authentification mixte Dans le cas où l authentification SQL Server est activée, spécifier le mot de passe du compte SA Ce point sera expliqué en détail dans le chapitre de sécurité
Règles de tri 43
44 Règles de tri Collation Les règles de tris ou «collation» déterminent les critères dont il faut tenir compte lors d une comparaison (et donc dans un tri) Les règles peuvent être modifiées à plusieurs niveaux: Instance Base de donnée Colonne Expression
45 Règles de tri Les collation peuvent être différentes pour chaque service Collation designator L alphabet utilisé Options Binary : mode le plus simple, le code binaire des caractères sert au tri Case-sensitive : sensible aux majuscules Accent-sensitive : sensible aux accents Binary code point : Tri code point pour données unicodes, tri binaires pour les autres Kana-sensitive : fait la différence entre hiragana et katakana Width-sensitive : fait la différence entre le codage sur un ou deux octets
Prêt? Partez! 46
47 Prêt? Partez! Vous avez enfin tout configuré, l installation peut commencer Récapitulatif des composants à installer Avertissements en cas de problèmes éventuels Vous devez relancer l installation pour chaque nouvelle instance
Désinstallation d une instance 48
49 Désinstallation d une instance Une instance se désinstalle en passant par: Panneau de contrôle Ajout suppression de programme Microsoft SQL Server Désinstaller Choisir ensuite l instance
50 Installation non assistée Il est possible de scripter l installation d SQL server Utilisation d un script ini contenant tous les règlages Plus d intervention utilisateur requise Installation à distance possible Un script d exemple à compléter est disponible sur le disque d installation template.ini
51 Installation non assistée Lancer le setup en ligne de commande setup.exe {/qn ou /qb} /settings <path to.ini file> Option : /qn : installation silencieuse sans boite de dialogue /qb : installation silencieuse avec juste une barre de progression
52 Labo Installez votre instance par défaut Tous les composants Bases de données de tests inclues Comptes system local Authentification windows Sensible uniquement aux accents Installez une instance nommée «temporaire» Supprimez-là
53 SQL Server Outils de gestion
54 Outils de gestion Surface Area Configuration Tool SQL Server Configuration Tool SQL Server Management Studio Sqlcmd Labo
55 Surface Area Configuration Tool Minimiser la surface Un service ou une option inutilisée mais active est à éviter Gaspillage de ressources Faille de sécurité potentielle inutile Surface area configuration tool permet de gérer Les services sql server Les «features» ou fonctionnalités, spéciales d SQL Server
Surface Area Configuration Tool 56
57 Surface Area Configuration Tool Services et connexions Gérer les différents services et leur mode de démarrage Gérer les types de connexions utilisées Fonctionnalités Activer / désactiver des fonctionnalités à risque de SQL server Ces rêglages se font par instances
58 Surface Area Configuration Tool Fonctionnalités Requêtes Ad Hoc à distance Autorise les commandes OPENROWSET et OPENDATASOURCE Intégration CLR Mapping de functions utilisateurs à des assemblies.net
59 Surface Area Configuration Tool Fonctionnalités DAC Connexion Administrateur Dédiée. Connexion de secours en ligne de commande Database mail Envois de mail à partir de commandes T-SQL Native XML Web service Permet de créer des web services directement dans SQL Server via un HTTP Endpoint
60 Surface Area Configuration Tool Fonctionnalités OLE Automation Ancien mode permettant la communication entre processus basée sur COM Remplacé par l intégration CLR Dangereux, aucune garantie sur le code vraiment executé Service Broker Technologie de messagerie asynchrone de SQL Server
61 Surface Area Configuration Tool Fonctionnalités SQL Mail Ancienne méthode d envoi de mail, remplacé par Database mail Nécessite Outlook Web Assistant Remplacé par reporting service, ensemble de procedure permettant la création de pages HTML Xp_cmdshell Permet d executer des commandes system à partir de TSQL
SQL Server Configuration Tool 62
63 SQL Server Configuration Tool Permet de gérer les services des différentes instances Visualiser leur état Modifier leur propriétés Ports reseau Protocoles
Management studio 64
65 Management studio Client permettant de se connecter à une instance SQL Server Exploration graphique du serveur Administration (TSQL et Interfaces graphiques) Scripts T-SQL, MDX, DMX et XMLA Fait partie de la suite Visual Studio
66 Management studio Management studio est l outil le plus utilisé des développeurs et des Administrateurs Il est très pratique mais demande un certain temps de prise en main
67 SQLCMD SQLCMD est un outil en ligne de commande permettant de se connecter à une instant SQL Server et d executer des instructions TSQL C est management studio sans interface graphique
SQLCMD 68
69 SQLCMD Pour obtenir la liste des paramètres : SQLCMD -? Ne pas oublier de spécifier la DB Utiliser l instruction GO pour executer une requête SQLCMD Permet aussi d executer des scripts et de récupérer le résultat dans un fichier
70 SQLCMD Exemple d utilisation de script avec paramètre Script.sql : SELECT $(col) FROM $(tab) GO Commande : Sqlcmd S localhost i script.sql o output.txt v col="name" tab="sys.databases" Le résultat est disponible dans output.txt
71 SQLCMD Dedicated Administrator connection Connexion d urgence pour quand le serveur est tombé mais que le service SQL Serveur tourne toujours Une seule DAC peut être activé Ajouter le paramètre A pour l activer (ne pas oublier d activer la fonctionnalité dans Surface Area Configuration Tool)
72 Labo Installez une instance nommée SQLADMIN Uniquement le moteur de base de donnée Insensible aux accents et à la casse SQL Server Agent démarré automatiquement Activez ensuite les options suivantes CLR integration et Database Mail Arrêtez le service SQL Server Agent
73 Labo Créez un script permettant de lister les bases de données d un serveur Utilisez la vue sys.databases Lancez ce script par ligne de commande et récupérez le résultat dans un fichier texte
74 SQL Server Objets de base de données
75 Plan du chapitre Introduction Query Designer Schémas et résolution de noms Tables et vues Clefs primaires et étrangères Indexes et clefs d unicité Diagrammes
Introduction 76 Ce chapitre présente les interfaces fournies par management studio pour la création d objets dans votre base de donnée
77 Query Designer Pour exécuter une requête via management studio Click sur «new query» dans la barre d outils Un onglet s ouvre, tapez votre requête et appuyez sur F5 ou sur le point d exclamation rouge de la barre d outils Le résultat s affiche Assurez vous d être dans la bonne DB celle par défaut est master Pour la modifier, utilisez la dropdown de la barre d outils
78 Query Designer Pour créer une requête avec le designer click droit sur le fond de l onglet de requête «design query in editor» Choisissez les tables Supprimez les relations inutiles (jointures) Cochez les colonnes à afficher Spécifiez les options voulues Et voilà!
Query Designer 79
80 Schémas et résolution de noms Un schéma est un moyen de regrouper différents objets DB Avantages : Regroupement logique d objets Facilité de gestion au niveau des droits Il est possible d avoir deux objets ayant le même nom dans des schémas différents
81 Schémas et résolution de noms Un schéma est comparable à un namespace en POO Exemple : dans la base de donnée d une société, les tables relatives aux ressource humaines peuvent être placées dans un schéma RH alors que celles des ventes dans un schéma ventes
82 Schémas et résolution de noms Lorsque l on veut utiliser un objet placé dans un schéma, il faut normalement utiliser le nom complet NomDuSchema.NomObjet Si le nom du schéma est omis, on est dans un cas de «résolution de nom» Chaque utilisateur possède un schéma par défaut qui servira à cet effet
Schémas et résolution de noms 83 Résolution de nom
84 Schémas et résolution de noms La création de schéma se fait soit par une instruction TSQL CREATE SCHEMA [ventes] Soit par management studio (et management studio ne fait que générer et exécuter pour vous du TSQL)
Schémas et résolution de noms 85
86 Schémas et résolution de noms Dans la version 2000 de SQL server, il n y avait pas de différence entre le propriétaire d un objet et son schéma La différence est apparue dans la version 2005 Il existe des schéma déjà inclus dans les nouvelles DB Le schéma DBO est celui par défaut
87 Tables et vues La création de table peut se faire très facilement avec management studio Vous ajoutez les colonnes une à une Spécifiez leur type Spécifiez si elles acceptent la valeur null Réglez quelques propriété de colonnes si nécessaire Modifier les propriétés de table comme son nom et son schéma Sauvegarder et c est bon!
Tables et vues 88
89 Tables et vues Les vues dans management studio peuvent être crées de la même façon que les tables Click droit sur le dossier views Click sur New view Le query designer se lance Le résultat sera sauvé comme vue
90 Clefs primaires et étrangères La création de clefs primaires et étrangères se fait dans l interface de création de table Pour modifier une table existante, click droit sur la table puis click sur «Design»
91 Clefs primaires et étrangères Ajout de clef primaire Sélectionner la ou les colonnes impliquées dans la clef (ctrl + click pour en sélectionner plusieurs) Click droit puis «set primary key» N oubliez pas de sauvegarder votre onglet pour que les modifications soient sauvegardées
Clefs primaires et étrangères 92 Ajout de clef primaire
93 Clefs primaires et étrangères Ajout de clef étrangères Dans la barre d outil, click sur le bouton relationship La fenêtre de gestion des clefs étrangères apparait Cliquez sur Add et complétez les informations nécessaires N oubliez pas de sauvegarder l onglet d édition de la table pour enregistrer les modifications
Clefs primaires et étrangères 94 Ajout de clef étrangères
Clefs primaires et étrangères 95 Ajout de clef étrangères
Indexes et Clefs d unicité 96 La création d index non clusterisés (l index de la PK est généralement celui clusterisé) se fait en sélectionnant «manage indexes and keys» dans la barre d outils
Indexes et Clefs d unicité 97
98 Indexes et Clefs d unicité Un index est créé automatiquement pour la clef primaire Cliquez sur Add pour créer un index supplémentaire Choisissez les colonnes
99 Diagrammes La création de diagramme est très simple dans SQL Server Cliquez sur Database Diagrams Si c est la première fois, l ecran suivant apparait Répondez «Yes» cela créera une table système [sysdiagrams] qui contiendra les infos de votre schéma
Diagrammes Faites ensuite un click droit, «new database diagram» Choisissez les tables à ajouter au diagramme Les relations apparaissent automatiquement Les modifications effectuées sur le diagramme son répercutées sur les tables à la sauvegarde du diagramme 10 0
Diagrammes 10 1
Labo Créez une base de donnée avec l instruction TSQL suivante 10 2 create database Taches Créez les tables suivantes Employes Id int PK Nom varchar(200) Prenom Varchar (100) NULL IdFonction int DateEngagement - datetime
Labo Créez les tables suivantes Fonctions Id int PK Nom varchar(150) Departements Id int PK Nom varchar(300) Adresse varchar(500) Une table de jointure entre Employee et Departement 10 3
Labo Créez une vue DetailEmployé Nom Prenom Fonction Anciennete Indices : getdate() et datediff() Ajoutez un index sur le Nom des employés Créez les clefs étrangères entre les différentes tables 10 4
Labo Créez un diagramme contenant toutes les tables de la DB Créez une clef d unicité sur le nom de département 10 5
10 6 SQL Server Gestion des fichiers
Plan du chapitre 10 7 Types de fichiers Log des transactions Emplacement des fichiers Groupes de fichiers Partitionnement Planification Bases de données système
Types de fichiers 10 8 Une base de donnée est constituée d au moins deux types de fichiers Un fichier MDF (Master Data File) Contient les tables et vues système Contient les objets tels que StrorProcs et fonctions Peut contenir des données de tables Fichier unique Un fichier LDF (Log Data File) Enregistre les différentes transaction réalisées sur la base de données
Types de fichiers 10 9 Il est possible d ajouter un troisième type de fichier NDF (Next Data File) contient des données de tables utilisateurs Les extension MDF, NDF et LDF ne sont pas obligatoire mais vivement conseillées pour plus de clareté
Types de fichiers 11 0 Fichier de données:.mdf ou.ndf Extensions : 8 pages contigües de 8KB Fichier de Logs:.ldf Pages de 8KB
Log de transactions Une transaction est un ensemble d une ou plusieurs instructions T-SQL traité comme une seule instruction 11 1
Log de transactions 11 2 Il existe deux types de transaction Explicite au moyen des commandes BEGIN TRANSACTION et COMMIT Implicites si l option AUTOCOMMIT est activée sur la DB (elle l est par défaut) pour les opérations suivantes : ALTER TABLE, INSERT, UPDATE, DELETE, CREATE, OPEN, REVOKE, DROP, SELECT, FETCH, TRUNCATE TABLE, GRANT
Log de transactions 11 3 Toutes les transactions sont enregistrées dans le log Le log, ou fichier journal, contient donc la liste des différentes modifications subies par la Base de donnée au fil du temps
Log de transactions 11 4 SQL Server travaille principalement en cache pour plus de rapidité Les modifications de données en cache sont périodiquement sauvées sur disque Cette opération est nommée «Checkpoint»
Log de transactions 11 5 Cycle de vie d une modification : 1. L application envoie les modifications de données 3. Les modification sont enregistrées dans le journal 4. Le Checkpoint écrit les transactions dans la base de données. 2. Les pages de données sont localisées ou lues dans le cache et modifiées
Log de transactions 11 6 Le log est un outil crucial en cas de panne, lui seul permet de savoir quelles opérations ont été réalisées entre le dernier checkpoint et la panne Cette section cruciale du log est nommée «queue du log»
Emplacement des fichiers 11 7 A la création d une base de donnée, vous pouvez placer les fichier où vous le souhaitez Par défaut ce sera : «C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA» Dans un environnement de production, il sera préférable de placer les fichiers sur des disques durs séparés pour augmenter les performances
Emplacement des fichiers 11 8 Il est conseillé d avoir un fichier par disque pour un maximum de performance Le fichier de log sera plus efficace sur un disque isolé
Emplacement des fichiers 11 9 La base TempDB peut être idéalement placée sur un disque rapide à part pour un maximum de performance Le déplacement de cette DB peut se faire de la manière suivante sur la DB master : ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = F:\tempdb2005.mdf') GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = F:\tempdb2005.ldf') GO Supprimez ou déplacez les anciens fichiers Redémarrez ensuite le service
Groupes de fichiers 12 0 Un groupe de fichier est un moyen de regrouper plusieurs fichiers de donnée sous un même nom Il est ensuite possible de placer une table dans un groupe de fichier spécifique Il n est pas possible de placer directement une table dans un fichier
Groupes de fichiers 12 1 Cas concret :
Groupes de fichiers 12 2 Si des données sont rarement utilisées, il peut être intéressant de les placer sur un disque à part Les données souvent utilisées seront sur un disque plus petit mais plus rapide
Groupes de fichiers 12 3 Il existe toujours au moins un groupe de fichier, le PRIMARY Il ne peut pas être modifié Si l on ne spécifie pas de groupe de fichier lors de la création d une table, elle est placée dans le groupe par défaut (option de la base de données)
Groupes de fichiers 12 4 Les indexes sont également stockés dans des groupes de fichiers, pas forcement le même que celui de leur table Les données des colonnes étant stockées par pointeurs (TEXT, IMAGE etc.) peuvent être stockées dans un groupe de fichiers à part
Groupes de fichiers 12 5 Un groupe de fichiers autre que le PRIMARY peut être placé en lecture seule Plus moyen de modifier les données Possibilité d activer la compression NTFS
Partitionnement 12 6 Il est également possible de répartir une table entre plusieurs groupes de fichiers Augmentation des performances Disponible uniquement dans la version entreprise On utilise pour cela une fonction de partition et un schéma de partition
Partitionnement 12 7 Le partitionnement se base sur une colonne il est par exemple possible de placer les commandes d une année donnée sur un disque La répartition des données n est donc pas forcément uniforme
Partitionnement 12 8 Créer une fonction de partitionnement create partition function FPProduits(int) as range left for values (10,20) Le paramètre d entrée est le type de la colonne qui sera utilisée On définit ensuite les valeurs pivot 10 20
Partitionnement 12 9 Un schéma de partition est associé à une fonction de partition create partition scheme SchemaProduits as partition FPProduits to (groupe1,groupe2,groupe3) Si la fonction possède N valeurs pivot, il faut au moins N+1 partitions S il y en a plus elle seront utilisées quand on modifiera la fonction de partition, elle sont marquées comme «NEXT»
Planification 13 0 La quantité de données dans une DB évolue au fil du temps généralement elle s accroit Il est possible de spécifier une politique de croissance des fichiers Par pas de X Mo Par Pourcentage Il est possible de fixer une table maximum L idéal est de créer dés le début un gros fichier qui n aura pas à grandir ensuite
Planification 13 1 Estimer la taille d une DB est une opération délicate Il faut calculer pour chaque table la taille d une ligne Calculer l espace perdu à cause de la limite des pages Multiplier par le nombre de lignes estimé Ajouter à cela les autre objets (indexes, procedures, fonctions etc.)
Bases de données systèmes 13 2 En plus de vos bases, le serveur contient des DB systèmes Master Tempdb Model Msdb Ces DB ont toutes leur importance
Bases de données systèmes 13 3 Master La base de donnée centrale de votre serveur Contient les liens vers toutes les autres DB Contient les objets au niveau serveur (logins par exemple)
Bases de données systèmes 13 4 Tempdb Base de donnée tampon Héberge les tables et autres objets temporaires créés le temps d un script par exemple
Bases de données systèmes 13 5 Model Comme son nom l indique, elle sert de model aux nouvelles bases de données Son contenu est copié dans chaque nouvelle base Vous êtes libres d ajouter vos propres objets
Bases de données systèmes 13 6 msdb Sert au stockage des jobs du SQL Server Agent Cet outil sera détaillé dans un chapitre suivant
Options de base de données 13 7 Les bases de données SQL Server peuvent être paramétrées dans la section options de leurs propriétés Les différentes options sont regroupées par thèmes Automatisation, Curseurs, Divers, récupération et état
Options de base de données 13 8 Quelques exemples d options intéressantes modifier la «collation» de votre DB Choisir le mode de récupération Passer la DB en lecture seule Limiter l accès à certain types d utilisateurs en cas de problème Modifier le comportement de la valeur NULL Etc.
Options de base de données 13 9
Métadonnées 14 0 Les métadonnées sont des «informations sur les informations» Il s agit grosso modo de statistiques et d informations sur la structure des données
Métadonnées 14 1 Pour obtenir ces informations, plusieurs possibilités : Management studio explorateur d objet Rapports Fenêtres de propriétés des différents objets Objets systèmes Vues Procédures Fonctions
Métadonnées Il existe des dizaines de vues système, en voici quelques une intéressantes Catégorie Vue Description 14 2 Base de données Sys.databases une ligne pour chaque base de données dans le serveur. Sys.database_files une ligne pour chaque fichier dans la base de données. Objets Sys.columns une ligne pour chaque colonne d un objet contenant des colonnes. Sys.events Sys.indexes une ligne pour chaque évènement pour lequel un trigger ou une notification se déclenchera. une ligne pour chaque index Sys.tables Sys.views une ligne pour chaque table dans la base de données une ligne pour chaque vue dans la base de données. Schémas Sys.schemas une ligne pour chaque schéma défini dans la base de données.
Métadonnées 14 3 Fonctions systèmes Fonction DB_ID DB_NAME FILE_ID FILE_NAME FILEGROUP_ID FILEGROUP_NAM E Description Retourne le nombre d identifications de la base de données correspondant au nom de la base de données spécifié ou celui de la base de données courante si aucun nom n est spécifié Retourne le nom de la base de données correspondant à l ID spécifié, ou celui de la base de données courante si aucun ID n est spécifié Retourne l ID correspondant au fichier logique spécifié dans la base de données courante Retourne le nom logique correspondant à l ID spécifié du fichier logique dans la base de données courante Retourne l ID correspondant au filegroup spécifié Retourne le nom correspondant à l ID spécifié du filegroup
Métadonnées 14 4 Procédures stockées Procédures sp_databases sp_stored_procedures sp_help Sp_helpfilegroup Description Liste les bases de données disponibles dans l instance de SQL Server Liste les procédures stockées présentes dans la base de données Donne plus d informations sur un objet donné de la base de données. Donne plus d informations sur un filegroup donné.
Labo 14 5 Vous êtes en charge de la création de la base de données centrale de la société Shop@Home qui fournit des services de shopping sur internet. Réalisez cette base de données en fonction des informations suivantes. Créez un diagramme pour chaque schéma plus un diagramme global. Créez les clefs primaires et étrangères que vous jugez nécessaires. N oubliez pas les delete et update cascade quand nécessaire.
Labo 14 6 Fichiers de base de donnée ShopAtHome.mdf : Fichier principal, disque C ShopAtHomeIndexes.ndf : Fichier secondaire, disque D ShopAtHomeOldOrders.ndf : Fichier secondaire, disque E ShopAtHomeBigData.ndf : Fichier secondaire, disque F Groupes de fichiers BigData : contient les données des colonnes de types IMAGE, etc. Indexes : Contient les indexes non clusterisés. OldOrders : Contient les commandes des années précédentes. Primary : Tous les autres objets Schémas : RH et Sales Si votre machine ne dispose pas d assez de disque, utilisez des dossiers portant le noms des disques
Labo 14 7 Structures des tables Le fichier image de l avatar est en DB mais doit être stocké sur un disque à part. Des recherches d utilisateurs par login seront fréquemment utilisées, créez un index sur cette colonne. Un login utilisateur est unique.
Labo Structures des tables 14 8 Les commandes sont partitionnées par dates. La fonction de répartition est modifiée chaque année. Il ne peut y avoir deux lignes pour le même produit dans une commande
Labo Structures des tables 14 9 Des requêtes sur le nom d un produit sont courantes, créez un index sur cette colonne.
Labo Structures des tables 15 0
Vues Labo 15 1
15 2 SQL Server Sécurité
Plan du chapitre 15 3 «Principals», «securables» et permissions Logins et modes d authentification Politiques de mots de passe Utilisateurs Utilisateurs spéciaux Rôles server Rôles de base de données Rôles d applications Clefs et certificats
Principals, securables et permissions 15 4 Un peu de vocabulaire Principals Identité à qui l ont donne, retire ou interdit un droit Securable Composant sur lequel on donne des droits Il existe des Principals et securables à plusieurs niveaux Système d exploitation SQL Serveur Base de donnée
Principals, securables et permissions 15 5 Et entre les deux, il y a les droits
Principals, securables et permissions 15 6 Les droits peuvent être gérés dans management studio ou par des procédures stockées systèmes Il existe une règle importante des droits : Si un même principal reçoit deux permissions contradictoires, c est toujours celle qui interdit qui est prioritaire
Logins et modes d authentification 15 7 Le principal permettant de s authentifier dans SQL Server est le Login Il y a deux façons de s authentifier par login Authentification Windows Authentification SQL Server (Mixte)
Logins et modes d authentification 15 8 Authentification windows Pour accéder à votre ordinateur, vous vous êtes authentifiés sous un compte utilisateur Windows Il est possible de mapper un compte ou un groupe Windows à un login dans SQL Server Pas de mot de passe à fournir, Windows est garant de votre identité Pour un accès à distance, un compte de domaine est nécessaire
Logins et modes d authentification 15 9 Authentification SQL Server Option à activer dans les propriétés du serveur Authentification basée sur une paire Nom de login / mot de passe Permet de se connecter à partir de n importe quel système d exploitation Microsoft conseille évidement le mode Windows
Logins et modes d authentification 16 0
Logins et modes d authentification 16 1 Créer un login
Logins et modes d authentification 16 2 Un login peu également être créé par commande TSQL CREATE LOGIN [SERVEUR\NomUtilisateur] FROM WINDOWS WITH DEFAULT_DATABASE = AdventureWorks CREATE LOGIN Laurent WITH PASSWORD = Mot2p@ss3', DEFAULT_DATABASE = AdventureWorks Un login possède également une base de donnée par défaut (master si rien n a été précisé)
Politiques de mots de passe 16 3 Windows possède, dans sa version serveur, une option «politique de mot de passe» Cette option définit des règles de complexité et de renouvellement de mot de passe SQL serveur peut adopter ces règles pour le mode d authentification SQL Server Cette gestion reste ainsi centralisée
Politiques de mots de passe 16 4 Lors de la création d un login, choisissez quelles options de la politique vous allez intégrer
Utilisateurs 16 5 Un login seul n est pas très utile, il doit être mappé à un utilisateur dans une base de données pour y accéder Ce qu il pourra réaliser dans la base de donnée dépend des droits que l utilisateur auquel il est mappé possède dans cette DB
Utilisateurs La création d un utilisateur se fait de la manière suivante 16 6