sql server 2000
DESCRIPTION
CLIENT/SERVEUR. SQL SERVER 2000. SQL SERVER. 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 - Présentation. - PowerPoint PPT PresentationTRANSCRIPT
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 deDonné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 SERVERConfiguration 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 SERVERInstallation 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 SERVERPersonnalisation de
l'installation
Yonel Grusson 12
Installation de SQL SERVERDé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 SERVERVariante : Il est possible de différencier les comptes entre les 2 services.
Yonel Grusson 14
Installation de SQL SERVERSQL-SERVER peut authentifier les utilisateurs :
• En s'appuyant sur l'authentification Windows
Yonel Grusson 15
Installation de SQL SERVERSQL-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 SERVERInstallation 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’installationLe 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 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’installationLes 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)Eventt un ou plusieurs fichiers secondaires (.ndf)
Fichier de données principal (.mdf)Eventt un ou plusieurs fichiers secondaires (.ndf)
Un ou plusieurs fichiers journaux des transactions (.ldf)
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 KoUne ligne ne peut pas s’étendre sur plusieurs pages et sa taille maximum est de 8060 octets.
UNE Page = 8 Ko
Base de donnéesBase 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
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 ServerL'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 SQL3 – 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ésultatsur 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’indexEnregistrer
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'à 2 147 483 647 octets.
Yonel Grusson 54
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 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 –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 58
Ajout de données
Yonel Grusson 59
Ajout de données
Yonel Grusson 60
La SECURITE1 - 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écifiqueSQL-Server
UNE Connexion Windows
OUReprise 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
Connexion Utilisateur Base0,n 1,1 1,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 SECURITEA 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 SECURITERelation : 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 SECURITERelation : 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 SECURITEPermissions 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 SECURITELes 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éesQuelques 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éesQuelques autorisations sont définies sur les procédures, les tables système et les vues.
Yonel Grusson 85
La SECURITELes ROLES : Création d'un rôle
Yonel Grusson 86
La SECURITELes 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_ownerPossède toutes les autorisations de la base de données.
db_accessadmin Peut ajouter ou supprimer des utilisateurs.
db_securityadminPeut 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_ddladminPeut lancer l'instruction ALL DDL mais pas les instructions GRANT, REVOKE ou DENY.
db_backupoperatorPeut lancer les instructions DBCC, CHECKPOINT et BACKUP.
db_datareaderPeut 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_denydatareaderNe 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 SECURITELes ROLES : Au niveau du serveur
Yonel Grusson 91
La SECURITE
Rôle de serveur Description
sysadminExé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.
setupadminAjoute 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.
Rôles au niveau du serveur SQL :
Yonel Grusson 92
La SECURITE
Rôle de serveur Description
processadminGè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.
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
SQ
L-S
erver Connexion
SQL-Server
User1 User2 User3 User4
Groupe Windows
Yonel Grusson 99
La SECURITESoit un groupe Windows créer dans l'active Directory
Yonel Grusson 100
Nou
velle con
nexion
:
La SECURITE
Etat initialEtat 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 SECURITEApplication : 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.