Installation de SQL SERVER

publicité
CLIENT/SERVEUR
SQL SERVER 2000
Yonel Grusson
1
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
2
SQL SERVER - Présentation
SQL-Server est un SGBD Client-Serveur (cf. le cours)
qui utilise TRANSACT-SQL dans ses transactions .
Client
Requête (Transact-SQL)
Résultats
(seulement les données)
Application CLIENTE
Yonel Grusson
Serveur
Base de
Données
Application SERVEUR :
SQL-SERVER
(SGBD)
3
SQL SERVER - 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
4
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
5
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 SQLServer.
Yonel Grusson
6
Installation de SQL SERVER
Vérifier les composants requis
avant de lancer l'installation
Yonel Grusson
7
Installation de SQL SERVER
Installation locale
L'installation peut
se
faire
sur une
Il est
possible
d'installer plusieurs
machine
distante
instances de
SQL sur le même serveur.
Yonel Grusson
8
Installation de SQL SERVER
Yonel Grusson
9
Installation de SQL SERVER
Yonel Grusson
10
Installation de SQL SERVER
Personnalisation de l'installation
Yonel Grusson
11
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
12
Installation de SQL SERVER
Variante : Il est possible de différencier les comptes entre les 2
services.
Yonel Grusson
13
Installation de SQL SERVER
SQL-SERVER peut authentifier les utilisateurs :
• En s'appuyant sur l'authentification Windows
Yonel Grusson
14
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
15
Installation de SQL SERVER
Yonel Grusson
Choix important car irréversible sans une
reconstruction complète de TOUTES les bases.
16
Installation de SQL SERVER
Mécanisme
interprocessus
(IPC) que de
SQL
Le port serade
icicommunication
attribué dynamiquement
au démarrage
Server
utilise
pour assurer
la communication
entreUDP
les clients
l'instance
du SGBD.
SQL-SERVER
utilise le port
1434 et
Yonel Grusson
17
les
serveurs
(cf. cours)
pour
la connexion
depuis les clients puis le port IP 1433.
Installation de SQL SERVER
Yonel Grusson
18
Installation de SQL SERVER
Installation du service Pack 3 ou ultérieur
Yonel Grusson
19
Installation de SQL SERVER
Yonel Grusson
20
Installation de SQL SERVER
Yonel Grusson
21
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éveloppement
HTML : Pour MMC
(console) et SQL Server
SCRIPTS : Scripts
générés à l'installation
TEMPLATES :
Yonel Grusson
22
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
23
Résultat de l’installation
Les bases de données (2)
Yonel Grusson
24
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 point 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 dla base de données.
Yonel Grusson
25
Résultat de l’installation
Les bases de données (stockage physique)
Base de données
Fichier de données principal (.mdf)
Eventt un ou plusieurs fichiers secondaires (.ndf)
Un ou plusieurs fichiers
journaux des transactions (.ldf)
UNE ETENDUE = 8 Pages de 8 Ko
UNE Page = 8 Ko
Yonel Grusson
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
26
8060 octets.
Résultat de l’installation
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
YonelServer
Grusson
et Agent SQL Server.
27
Résultat de l’installation
Les services
MSDTC s’exécute sous le compte : NT AUTHORITY\NetworkService
Ce service s’exécute sous le compte syteme local
Yonel Grusson
Ce service s’exécute sous le compte syteme local
28
Résultat de l’installation
Les services
Ces 2 services s’exécutent sous le compte d’administration défini à l’installation
Yonel Grusson
29
Résultat de l’installation
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.
Yonel Grusson
30
Résultat de l’installation
Démarrage et arrêts des services :
• Automatiquement au démarrage du serveur
• Par l’intermédiaire du bureau
Yonel Grusson
31
Résultat de l’installation
Administration de SQL Server ( par l’interface)
SQL
Gestion des
services
Yonel Grusson
Administration de SQL Server
(Mode Interface)
32
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.
33
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)
Yonel Grusson
34
Utilisation du SQL
Aperçu
Yonel Grusson
Pour une étude
plus approndie,
voir cours SQL
35
Utilisation du SQL
3 – Enregistrez votre
Choisir
requêtes
la baseSQL
de données
2 – Exécutez votre requête SQL
1 – Tapez votre requête SQL
Yonel Grusson
36
Utilisation de Enterprise Manager
Rappel : Les manipulations montrées ici avec l’interface
graphique peuvent évidemment se faire avec le SQL.
Yonel Grusson
37
Utilisation de Enterprise Manager
Yonel Grusson
38
Création d’une base de données
Yonel Grusson
39
Création d’une base de données
Création de la
base de données :
Le fichier des
données (.mdf)
Yonel Grusson
40
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
41
Création d’une base de données
Yonel Grusson
Résultat dans l’interface
42
Création d’une base de données
Résultat
sur le disque
Plus mise à jour des tables
système (base master)
Yonel Grusson
43
Création d’une table
Yonel Grusson
44
Création d’une table
Enregistrer
Création de l’index
Yonel Grusson
45
Création d’une table
Définir une contrainte d’intégrité référencielle
Yonel Grusson
46
Création d’une table
Yonel Grusson
47
Création d’une table
Yonel Grusson
48
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
49
Création d’une table
Les contraintes (CHECK
en SQL) permettent de
définir des règles sur les
propriétés d’une tables.
Par exemple définir un
domaine de validité pour
une valeur numérique.
Yonel Grusson
50
Création d’une table
Yonel Grusson
51
Création d’une table
Yonel Grusson
52
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
Yonel
Grusson par exemple). Jusqu'à 2 147 483 647 octets.
livre
53
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, BINARY(n), VARBINARY, VARBINARY(n) :
Ensemble de bits (n<=8000).
Yonel Grusson
54
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
55
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
56
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
57
Ajout de données
Yonel Grusson
58
Ajout de données
Yonel Grusson
59
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
60
La SECURITE
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.
Yonel Grusson
61
La SECURITE
Modification de la
sécurité à l'aide de :
"Propriétés de
l’instance de SQL
Server"
Yonel Grusson
62
La SECURITE
UNE Connexion Windows
UNE Connexion spécifique
SQL-Server
OU
Reprise de la
Connexion Windows
SQL-Server
Yonel Grusson
............
Base1
Base2
UtilisateurA
UtilisateurB
BaseN
UtilisateurX
63
La SECURITE
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
Connexion
Utilisateur
0,n
Yonel Grusson
1,1
Base
1,1
1,n
64
La SECURITE
Nouvelle connexion (état initial):
"CLAPTON/Eric_SQL" s'appuie sur une authentification Windows
"sa" s'appuie sur une authentification SQL Server
Yonel Grusson
65
La SECURITE
L'utilisateur doit
déjà exiter
Nouvelle connexion Windows uniquement :
Yonel Grusson
Création d'un
utilisateur
"JOLIE" sur la
base "Comix"
66
La SECURITE
Nouvelle connexion Windows
Yonel Grusson
Création d'un
utilisateur
"MONNOT" sur la
SQL-Server:
base "Comix"
67
La SECURITE
A la suite de sa connexion Windows l'utilisateur "JOLIE"
("CLAPTON/JOLIE") doit avoir le droit d'accéder à la base
"Comix:
Yonel Grusson
68
La SECURITE
Résultat sur la base de données "Comix"
Yonel Grusson
69
La SECURITE
Il est également
possible, lors de la
création d'une
connexion, de
rattacher cette
connexion à
plusieurs bases de
données.
Yonel Grusson
70
La SECURITE
Laisser la base
"master"
Nouvelle connexion (sans création d'un utilisateur) :
Yonel Grusson
71
La SECURITE
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.
Nom de l'utilisateur, par
défault ce nom est
Liste des connexionsidentique
disponibles
à celui de la
pour la base "Comix"
connexion
Yonel Grusson
72
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
73
La SECURITE
Relation : Authentification /
Connexion (1)
L'utilisateur "LeChef" s'est
connecté sur le domaine
"Clapton".
Soit la configuration
Ici seule
suivante…
l'authentification
Windows
acceptée.
Par est
contre
…
"Monnot" est une
connexion SQL-Server
Yonel Grusson
74
La SECURITE
Relation : Authentification /
Connexion (2)
Soit la configuration
Les deux
suivante…
types de connexion
Et …
sont ici acceptés.
"Monnot" est une
connexion SQL-Server
Yonel Grusson
75
La SECURITE
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
sur les objets de la base des permissions aux
utilisateurs.
Les objets regroupent les tables (et les
opérations sur elles), différentes procédures
stockées et des vues.
Yonel Grusson
76
La SECURITE
L'utilisateur a néamoins quelques autorisations
sur une base de données.
Il obtient ces autorisation par son appatenane 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.
Yonel Grusson
77
La SECURITE
Permissions sur les objets d'une base pour un utilisateur nouvellement créer
Yonel Grusson
78
La SECURITE
Permissions d'un utilisateur nouvellement créer sur les objets d'une base
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
Yonel Grusson
79
La SECURITE
Permissions d'un utilisateur nouvellement créer sur les objets d'une base
Ces autorisations ne
sont pas définies.
Application du rôle
Le SELECT
Aucune autorisation
n'est est
spécifiquement
spécifiquement définie
refusé
Yonel Grusson
Le UPDATE est
spécifiquement
autorisé
80
La SECURITE
Liste des procédures stockées utilisables par les utilisateurs de la base
Yonel Grusson
81
La SECURITE
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).
Yonel Grusson
82
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é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.
Yonel Grusson
83
La SECURITE
Les ROLES : Au niveau d'une base de données
Aucune autorisation
Aucune autorisation
donnée par défaut sur la donnée par défaut sur la
base de données
base de données
Quelques autorisations Quelques autorisations
sont définies sur les
sont définies sur les
procédures, les tables procédures, les tables
système
et les vues.
Tout
utilisateur
est affecté
par
système
et nouvel
les vues.
défaut au rôle "public"
Yonel Grusson
84
La SECURITE
Les ROLES : Création d'un rôle
Yonel Grusson
85
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
86
La SECURITE
Rôle prédéfinis sur une base de données :
Rôle de base de
données
Description
db_owner
Possède toutes les autorisations de la base
de données.
db_accessadmin
Peut 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
Yonel Grusson
87
La SECURITE
Rôle prédéfinis sur une base de données :
Rôle de base de
données
Description
Peut lancer l'instruction ALL DDL mais
db_ddladmin
pas les instructions GRANT, REVOKE
ou DENY.
Peut lancer les instructions DBCC,
db_backupoperator
CHECKPOINT et BACKUP.
Peut sélectionner toutes les données de
db_datareader
toutes les tables utilisateur dans la base
de données.
Yonel Grusson
88
La SECURITE
Rôle prédéfinis sur une base de données :
Rôle de base de
données
db_datawriter
Description
Peut modifier les données de toutes les
tables utilisateur dans la base de données.
Ne peut sélectionner des données
db_denydatareader d'aucune table utilisateur dans la base de
données.
Ne peut modifier les données d'aucune
db_denydatawriter
table utilisateur dans la base de données.
Yonel Grusson
89
La SECURITE
Les ROLES : Au niveau du serveur
Yonel Grusson
90
La SECURITE
Rôles au niveau du serveur SQL :
Rôle de serveur
Description
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.
serveradmin
Configure 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.
securityadmin
Gère les connexions d'accès au serveur.
Yonel Grusson
91
La SECURITE
Rôles au niveau du serveur SQL :
Rôle de serveur
Description
processadmin
Gère les traitements s'exécutant dans une instance
de SQL Server.
dbcreator
Crée et modifie les bases de données.
diskadmin
Gère les fichiers sur disque.
bulkadmin
Exécute l'instruction BULK INSERT.
Yonel Grusson
92
La SECURITE
Exemple de l'impact des permissions au travers d'une requête
SQL :
Yonel Grusson
93
La SECURITE
Les autorisations sont contradictoires
Yonel Grusson
94
La SECURITE
L'autorisation la plus restrictive
l'emporte (c'est une règle générale).
Yonel Grusson
95
La SECURITE
Yonel Grusson
96
La SECURITE
Les autorisations du rôle s'imposent.
Yonel Grusson
97
La SECURITE
Si plusieurs utilisateurs Windows sont
susceptibles de se connecter sur SQL-Server,
l'administrateur à la possibilité d'associer une
connexion SQL à un groupe Windows
User1
Connexion1
User2
Connexion2
User3
Connexion3
User4
Connexion4
SQL-Server
User1
User2
User3
User4
Groupe Windows
Connexion
SQL-Server
Yonel Grusson
98
La SECURITE
Soit un groupe Windows créer dans l'active Directory
Yonel Grusson
99
La SECURITE
Nouvelle connexion :
Etat initial
Etat final
Yonel Grusson
100
La SECURITE
Nouvel Utilisateur : Tous les membres du groupe "UserSQL"
pourront utiliser la base "Comix" sous l'utilisateur "Lecteur"
Yonel Grusson
101
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.
Yonel Grusson
102
Téléchargement