You are on page 1of 8

CENTRE DE RESSOURCES TERTIAIRE - GRENOBLE 6 avenue Marcelin Berthelot - 38029 Grenoble CEDEX 2

) 04 76 87 11 11 ) 04 76 46 80 46 ) crt@ac-grenoble.fr
GESTION DES ACCS AUX BASES DE DONNES SOUS SQL SERVER 2000
Ce document a pour objectif de prsenter l'organisation de la scurit daccs aux bases de donnes sous SQL Server 2000 et de proposer des modalits de fonctionnement pdagogique susceptibles dtre mises en place pour les tudiants de STS CGO.

Remarque prliminaire :
SQL Server sappuie sur quatre bases systme pour conserver des paramtres systme et suivre en permanence le fonctionnement de son moteur : la base "Master", la base "Model", la base "Tempdb", la base "msdb".

1 Architecture de la scurit daccs SQL Server


1.1 Principe de fonctionnement
Notre propos dcrit uniquement la scurit daccs partir du mode dauthentification NT1. Ltudiant de STS CGO ouvre une session rseau la plupart du temps, laide de son compte NT gr par le serveur tertiaire. Grce la relation dapprobation, il accde aux ressources du serveur dapplications sur lequel est install SQL Server 2000.
Ouverture de session dun tudiant CGO sur le domaine tertiaire
Compte NT Mot de passe

Serveur dapplications CGO Serveur Tertiaire


Relation dapprobation.

SQL Server
Accs aux ressources du serveur CGO. Couche middleware.
No c o m de nn ex i on

Autres Bases

Base Master

Nom dutilisateur

Base Cible

Fig 1 Architecture gnrale de l'accs une base SQL Server


1

L'authentification des utilisateurs au niveau de la base est lie l'authentification du domaine NT ce qui permet de bnficier de la scurit intgre au domaine.
Sqlsecur - CRT - Grenoble - 17/09/2001 Page 1 sur 8

l'aide du mode d'authentification NT, la gestion des accs seffectue trois niveaux : Accs au serveur SQL Server : lutilisateur devra possder un nom de connexion pour ouvrir une session sur le serveur SQL. Accs une base de donnes : le nom de connexion est reli un nom dutilisateur dans la base laquelle il souhaite accder. Accs aux objets de la base de donnes : les oprations que l'utilisateur peut effectuer dans cette base de donnes dpendent des autorisations que ladministrateur ou le propritaire de la base lui a donnes sur les objets de cette base. 1.1.1 Accs un serveur SQL Server par authentification NT Le nom de connexion un serveur SQL Server correspond au nom du compte NT. SQL Server nest accessible qu partir de la validation douverture de session sur le domaine NT. Il est possible dutiliser le nom dun groupe NT comme nom de connexion un serveur SQL Server. Dans ce cas, tous les membres du groupe auront accs au serveur SQL sans avoir de nom de connexion personnel. Exemple : Le nom du groupe NT "X1CGO" (classe de STS CGO 1 re anne) est utilis comme nom de connexion au serveur SQL Server. Chaque tudiant de cette classe accde SQL Server car son compte NT fait partie du groupe "X1CGO". Dans la base systme "Master" sont stocks tous les noms de connexion et les mots de passe associs. chaque compte de connexion correspond un identifiant "sid" qui est utilis par le systme pour le relier au nom dutilisateur dans une base. 1.1.2 Accs une base de donnes Une fois laccs au serveur SQL Server obtenu, un nom dutilisateur dans la base doit correspondre au nom de connexion. La base de donnes "cible" contient tous les noms des utilisateurs. Un nom dutilisateur dtermine de manire unique un nom de connexion stock dans la base "Master". 1.1.3 Accs aux objets dune base de donnes Il existe deux types dautorisations. Les autorisations dinstruction qui permettent principalement de crer des objets : - cration dune base de donnes, - cration de tables, de vues dans une base, - cration de procdures stockes Les autorisations sur les objets existants qui permettent de manipuler les objets : Insert, Update, Delete, Select, Par dfaut, une fois laccs la base obtenu, lutilisateur na pas encore de droit sur la base. Seuls ladministrateur et le propritaire de la base peuvent donner des droits. Ils peuvent les attribuer soit directement aux utilisateurs, soit des rles. Un rle est lquivalent d'un groupe NT: son but est de regrouper les utilisateurs afin de dfinir des autorisations des groupes d'utilisateurs ayant les mmes besoins, plutt qu' des individus.

Sqlsecur - CRT - Grenoble - 17/09/2001

Page 2 sur 8

Exemple : Le nom d'utilisateur "X1CGO" dans la base de donnes "cible" dtermine de manire unique le nom de connexion "X1CGO"qui correspond au nom du groupe NT "X1CGO". Ce nom dutilisateur est inclus dans le rle "AdminBD". De ce fait, chaque tudiant de la classe accde au serveur SQL Server laide de son compte NT et bnficie des droits associs ce rle. Il existe deux types principaux de rles : - les rles de serveur permettent daccorder certains utilisateurs des droits dadministration limits sur un serveur SQL ; ils ne sont pas modifiables et il nest pas possible den crer ; - les rles de base de donnes permettent dorganiser les autorisations sur les objets de la base ; dans chaque base, des rles sont prdfinis ; il est possible dajouter de nouveaux rles.

2 Scnario pdagogiques de gestion des accs


Cette partie reprend et approfondit les notions nonces ci-dessus partir dexemples. Supposons une mise en situation dans laquelle les tudiants de la classe "X1CGO" doivent crer une base de donnes "Inventaire", crer les tables et saisir les occurrences des tables partir de formulaires. Chaque tudiant a un compte NT, membre du groupe NT "X1CGO". partir du serveur ou d'une station, la gestion des accs et la cration de lobjet base de donnes sont ralises l'aide de la console Enterprise Manager de SQL Server.

Fig 2 Vue de la console Enterprise Manager de SQL Server

La cration des autres objets (tables, vues, procdures stockes,...) est ralise soit partir de la console Enterprise Manager, soit partir dun client SQL (Access 2000 par exemple).

Sqlsecur - CRT - Grenoble - 17/09/2001

Page 3 sur 8

SOLUTION 1 : UTILISATION DU RLE "DB_OWNER"


Ladministrateur systme2 cre la base de donnes et gre les accs. 1. Cration de la base de donnes Ladministrateur systme cre la base de donnes "Inventaire".
(dvelopper Bases de donnes, bouton droit Nouvelle base de donnes, saisir le nom de la base)

Fig 3 Cration d'une base de donnes

2. Cration dune connexion un serveur SQL Server Ladministrateur systme cre une connexion pour le groupe NT "X1CGO"
(dvelopper le dossier Connexion\Scurit, bouton droit Nouvelle connexion, saisir le nom de connexion, cocher Authentification Windows, choisir la base de donnes par dfaut)

Fig 4 Cration d'une connexion un serveur SQL Server


2

Lors de linstallation dun serveur SQL Server, les noms de connexion "sa" et "BUILTIN/Administrateurs" (groupe local NT Administrateurs du domaine) sont crs et sont inclus dans le rle de serveur "sysadmin" (administrateur systme du serveur SQL). Ladministrateur systme peut intervenir sur la console Entreprise Manager partir du serveur dapplications ou distance partir dune station.
Sqlsecur - CRT - Grenoble - 17/09/2001 Page 4 sur 8

3. Cration dans la base du nom dutilisateur et des autorisations associes Ladministrateur systme associe au nom de connexion "X1CGO", le nom dutilisateur "X1CGO" dans la base "Inventaire". Il inclut lutilisateur "X1CGO" dans le rle "db_owner" de la base "Inventaire". Lutilisateur "X1CGO" devient ainsi propritaire de la base et bnficie de tous les droits sur la base de donnes.
(dans longlet Accs aux bases de donnes, Autoriser la base Inventaire, Autoriser dans le rle db_owner)

Fig 5 Cration du nom dutilisateur dans la base

Ds lors, chaque tudiant peut accder en tant que propritaire, la base de donnes "Inventaire", partir de son compte NT. Ils peuvent crer les tables partir de la console Enterprise Manager, ou partir dun client SQL. 4. Accs la base au travers du client SQL "Access 2000" Sous Access 2000, ltudiant de X1CGO cre un projet "Inventaire.adp" et tablit une connexion la base "Inventaire" situe sur le serveur SQL Server.
(Fichier, Nouvelle base de donnes, Projet, saisir Inventaire.adp, annuler lutilisation de lassistant, Fichier, Connexion, Saisir le nom du serveur, choisir la scurit intgre de Windows NT, Slectionner la base de donnes).

Fig 6 Connexion la base depuis Access 2000

L'tudiant peut alors dvelopper la structure de la base inventaire (cration de tables, de relations), son interface utilisateur (cration de formulaires et d'tats, automatisation des traitements) et l'exploiter.

Sqlsecur - CRT - Grenoble - 17/09/2001

Page 5 sur 8

Remarque
Cette premire solution est intressante pour raliser une dmonstration de la gestion des accs laide dun vidoprojecteur par le professeur. La ralisation de ces manipulations par les tudiants pose le problme de la diffusion du mot de passe de ladministrateur systme et ncessiterait lune des modalits de fonctionnement suivantes : partir d'une station, les tudiants connaissent le mot de passe de ladministrateur systme et se connectent au serveur SQL Server pour crer chacun leur propre base de donnes ; cette solution pose des problmes de scurit ; partir du serveur ou d'une station, le professeur ouvre une session en tant quadministrateur systme et les tudiants par groupe de deux ou trois crent une base et grent les accs avec lassistance du professeur ; cette solution se rvle longue raliser et pose le problme de la gestion du groupe classe.

SOLUTION 2 : DLGATION SERVEUR SQL SERVER

DE DROITS DADMINISTRATION LIMITS SUR LE

Les modalits de fonctionnement prcdentes ne sont pas confortables pour le professeur. Il est ncessaire de minimiser les tches ralises par ladministrateur systme. Son rle peut consister uniquement crer une connexion. Il peut dlguer la cration de la base de donnes et la gestion des autorisations sur cette base en accordant la connexion cre des privilges au niveau de lensemble du serveur. Il existe deux mthodes partir de la console Enterprise Manager pour le faire : utilisation du rle de serveur "db_Creators", autorisation dinstruction "Create database" partir de la base "Master". 1. Utilisation du rle de serveur "db_Creators" Le rle de serveur "Database Creators" permet de crer et de modifier les bases de donnes. Lors de la cration de la connexion (Fig 4), ladministrateur systme inclut celle-ci dans le rle de serveur "Db_Creators".
(dans longlet Rles du serveur, cocher Database Creators)

Fig 7 Dlgation du rle de serveur Database Creators

Sqlsecur - CRT - Grenoble - 17/09/2001

Page 6 sur 8

partir dune station, les tudiants peuvent ensuite crer une base de donnes et grer les autorisations daccs aux objets de la base laide de la console Enterprise Manager.
(dvelopper Bases de donnes, bouton droit Nouvelle base de donnes, saisir le nom de la base)

Fig 8 Cration d'une base de donnes

Ensuite, la cration des objets de la base peut seffectuer indiffremment sous interface graphique, partir de la console ou d'un client (Access2000.par exemple). 2. Autorisation dinstruction "Create database" partir de la base "Master" 2.1. Autorisation accorde un utilisateur Ladministrateur systme associe au nom de connexion "X1CGO", le nom dutilisateur "X1CGO" dans la base "Master".
(dans longlet Accs aux bases de donnes, Autoriser la base Master)

Fig 9 Autorisation d'accs la base Master

Remarque
Lutilisateur peut dornavant accder la base "Master", mais ne bnficie pas pour autant de droits sur les objets de cette base.

Sqlsecur - CRT - Grenoble - 17/09/2001

Page 7 sur 8

Ladministrateur systme autorise linstruction "Create database" lutilisateur "X1CGO".


(dvelopper Bases de donnes, Master, bouton droit Proprit, cocher Crer une BdD pour lutilisateur X1CGO)

Fig 10 Autorisation de crer une base

Remarque
Accorder lautorisation dinstruction "Create Database" est possible uniquement dans la base "Master". 2.2. Autorisation accorde un rle de la base de donnes "Master" Au lieu de donner des autorisations un utilisateur, il est judicieux de les dfinir sur un rle de base de donnes. Il sera ensuite ais, au niveau de ce rle, dajouter ou de supprimer des membres en fonction des besoins qui rsulte de l'organisation. Ladministrateur systme cre le rle "AdminBD" dans la base "Master".
(dvelopper Bases de donnes, Master, Rle, bouton droit Nouveau rle de la base de donnes, saisir un nom, ajouter lutilisateur X1CGO au rle standard)

Fig 11 Cration d'un rle de base de donnes

Ladministrateur systme autorise linstruction "Create database" au rle "AdminBD".


(dvelopper Bases de donnes, Master, bouton droit Proprit, cocher Crer une BdD pour le rle AdminBD)

Fig 12 Autorisation de crer une base

Sqlsecur - CRT - Grenoble - 17/09/2001

Page 8 sur 8

You might also like