You are on page 1of 10

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

Chapitre 6 : Gestion des autorisations


1. Gestion des droits
Tous les utilisateurs de base de donnes, y compris guest, appartiennent au groupe public. Les droits sont organiss de
faon hirarchique par rapport aux lments scurisables du serveur.

Il est possible de grer l'attribution des droits au niveau du serveur, de la base de donnes, du schma ou bien
directement de l'objet. Les instructions suivantes seront utilises: GRANT, REVOKE et DENY.
1.1. Les autorisations d'utilisation des instructions et les autorisations d'utilisations des objets
Il existe deux types d'autorisation:
les autorisations d'utilisation d'instructions;
les autorisations d'objet.
1.1.1. Les autorisations d'utilisation des instructions
Les autorisations d'instruction donnent des droits sur les actions suivantes:
cration d'une base de donnes;
cration de tables et de vues dans une base de donnes;
cration de rgles et de valeurs par dfaut dans une base de donnes;
cration de procdures stockes ou de fonctions dfinies par l'utilisateur;
sauvegarde de la base de donnes;
sauvegarde du journal de transactions.
Les autorisations d'instruction peuvent tre stipules sur les commandes suivantes:
CREATE DATABASE
CREATE TABLE
CREATE VIEW
CREATE PROCEDURE
CREATE FUNCTION
CREATE DEFAULT
CREATE RULE
BACKUP DATABASE
BACKUP LOG
Seul un administrateur systme peut transmettre le droit de crer des bases de donnes.
Pour donner des autorisations d'instructions aux utilisateurs d'une base de donnes, il faut cliquer avec le bouton droit
de la souris sur le nom de la base puis choisir l'option "Proprits" dans le menu contextuel. Dans la fentre
"Proprits" de la base de donnes, il faut activer l'onglet "Autorisations".
1.1.1.1. Attribuer des droits
SQL Server Management Studio
C'est via la fentre des proprits de la base de donnes concerne que les droits seront attribus.

AM1

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

Transact SQL
GRANT PERMISSION [,]
TO utilisateur [ ,]
[ WITH GRANT OPTION ]
WITH GRANT OPTION: si l'autorisation est reue avec cette option, l'utilisateur peut lui-mme accorder
l'autorisation d'autres utilisateurs de la base de donnes.
Exemple:
GRANT CREATE TABLE
To Sophie
1.1.1.2. Retirer des droits
Bien videmment, il est possible de retirer des droits attribus. Si ceux-ci n'avaient pas t pralablement accords,
aucune erreur n'est gnre.

AM2

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

SQL Server Management Studio


Via la fentre des proprits de la base de donnes:

Transact SQL
REVOKE [GRANT OPTION FOR]
permission
FROM utilisateur [ ,]
[CASCADE]
GRANT OPTION FOR : Si la permission a t accorde avec le privilge d'administration GRANT OPTION, il est
possible de retirer simplement le paramtre d'administration via cette option.
Permission : Liste des permissions retirer.
Utilisateur : Liste des utilisateurs concerns par cette suppression.
CASCADE : Si la permission retire a t accorde avec le privilge WITH GRANT OPTION, l'option CASCADE
permet de retirer le privilge aux utilisateurs qui l'ont reu par l'intermdiaire de l'utilisateur qui est concern par la
suppression initiale de privilge.
Exemple:
REVOKE CREATE TABLE
FROM Sophie
1.1.1.3. Interdire
L'instruction DENY permet d'interdire un utilisateur l'utilisation d'un privilge, mme s'il en reoit la permission soit
directement, soit par son appartenance un groupe.

AM3

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

SQL Server Management Studio


Via la fentre des proprits de la base de donnes:

Transact SQL
DENY permission [,]
TO utilisateur [ ,]
[CASCADE]
Exemple:
DENY CREATE TABLE
TO Sophie
1.1.2. Les droits d'utilisation des objets
Ces droits permettent de fixer quelles oprations (lecture, modification, ajout ou suppression) l'utilisateur peut raliser
sur des donnes contenues dans une table, ou bien donner le droit d'excution d'une procdure stocke. Ces droits sont
en gnral grs par le propritaire de l'objet. En ce qui concerne le droit de lecture et de mise jour des donnes
contenues dans une table (utilisation des instructions SELECT et UPDATE), il est possible de prciser quelles colonnes
l'utilisateur peut visualiser. Par dfaut, il s'agit de toutes les colonnes. Les principaux droits d'utilisation des objets
concernant les tables, vues, procdures stockes correspondent aux ordres:
- INSERT
- UPDATE
- DELETE
- EXECUTE: qui ne s'utilise que pour les procdures stockes.
Les instructions SELECT et UPDATE peuvent tre limites certaines colonnes de la table ou de la vue. Il est
cependant prfrable de ne pas trop explorer cette possibilit car il en rsulte un plus grand travail administratif au
niveau de la gestion des droits. Il est prfrable de passer par une vue ou bien une procdure stocke pour limiter
l'usage de la table.
1.1.2.1. Autoriser
SQL Server Management Studio
Les privilges d'utilisation des objets peuvent tre grs deux niveaux dans SQL Server
Management Studio:
au niveau utilisateur, ce qui permet de connatre les possibilits de travail que possde chaque utilisateur;
au niveau des objets, afin de connatre quels sont les utilisateurs qui peuvent utiliser l'objet en question et
comment ils peuvent l'utiliser.
Dans chacun des deux cas, les autorisations sont gres par l'intermdiaire de la fentre des proprits.

AM4

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

Transact SQL
GRANT {ALL [PRIVILEGES] | permission [(colonne , [,] ) ] [,]}
ON objet [,]
TO utilisateur [,]
[WITH GRANT OPTION]
ALL : Permet d'accorder tous les privilges d'utilisation de l'objet. Les privilges accords sont toujours fonction du
type de l'objet concern par cet accord de privilge.
PRIVILEGES : Le mot cl a t ajout pour le respect de la norme ANSI-92. Il n'apporte aucune modification quant
l'utilisation du mot cl ALL.
Permission : Permet de spcifier la ou les oprations qui seront accordes aux utilisateurs.
Objet : Correspond au nom complet de l'objet ou des objets sur lesquels porte l'accord de privilge d'utilisation.
Utilisateur : Correspond l'utilisateur, ou plus exactement l'entit de scurit qui va pouvoir bnficier du ou des
privilges.
WITH GRANT OPTION : Le privilge est accord avec une option d'administration qui autorise le bnficiaire du
privilge accorder ce mme privilge d'autres utilisateurs de la base de donnes.
Exemple:
GRANT SELECT, INSERT
ON DBO.TABLE_CLIENT
TO Sophie
1.1.2.2. Retirer
SQL Server Management Studio
Pour retirer un privilge accord via SQL Server Management Studio, il suffit de passer par la fentre des proprits
soit de l'utilisateur concern soit de l'objet concern. Il est alors possible de dcocher les cases voulues.

AM5

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

Transact SQL
REVOKE [GRANT OPTION FOR]
{ALL [PRIVILEGES] | permission [ (colonne, [, ... ] ) ] [, ... ]} ON objet [(colonne [, ... ] ) ]
{FROM | TO} utilisateur [, ... ]
[CASCADE]
GRANT OPTION FOR : Avec cette option, il est possible de retirer simplement le privilge d'administration du
privilge.
Permission : Permet de prciser la ou les permissions concernes par le retrait. Comme pour l'accord, il est possible de
prciser les colonnes concernes par le retrait, mais la gestion d'un tel niveau de droit est lourde.
Objet : Il faut prciser le nom complet de l'objet au sein de la base de donnes, c'est--dire
nomSchema.nomObjet
FROM, TO : Ces deux termes sont synonymes. L'usage habituel consiste utiliser TO lors de l'accord d'un privilge
et FROM lors du retrait d'un privilge.
Utilisateur : Il s'agit trs exactement de l'entit de scurit qui le privilge est retir. Cette entit de scurit est le plus
souvent un utilisateur, mais il peut s'agir d'un rle par exemple.
CASCADE : Lors du retrait d'une permission accorde avec le privilge d'administration, cette option permet de
cascader le retrait, c'est--dire d'effectuer le retrait de la permission toutes les entits de scurit qui l'ont reue de la
part de celle qui est concerne initialement par le retrait.
Exemple:
REVOKE INSERT
ON DBO.TABLE_CLIENT
FROM Sophie;
1.1.2.3. Interdire
Le fait d'interdire d'utiliser une permission d'un objet est une action plus forte que la suppression car elle peut tre
applique avant mme que l'utilisateur n'ait reu cette autorisation.

AM6

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

SQL Server Management Studio

Transact SQL
DENY {ALL [PRIVILEGES] | permission [ (colonne, [,] ) ] [,] }
ON objet [(colonne [,] ) ]
TO utilisateur [,]
[CASCADE]
Exemple:
DENY DELETE
ON DBO.TABLE_CLIENT
TO Sophie
1.2. Droits au niveau base de donnes
Les privilges accords au niveau base de donnes donnent la possibilit l'utilisateur qui reoit ce privilge de raliser
des actions qui ont une porte sur l'ensemble de la base de donnes. Par exemple, le privilge ALTER ANY USER
permet un utilisateur de crer, supprimer et modifier n'importe quel compte de la base de donnes. Au niveau base de
donnes, il est possible d'accorder des privilges un utilisateur mais galement un schma ou un assembly. La
gestion de ces privilges utilise soit les instructions Transact SQL: GRANT, REVOKE et DENY, soit peut tre
effectue de faon graphique partir des proprits de la base de donnes.
N.B.: ci-aprs figurent les procdures pour attribuer ce type de privilges. Pour supprimer ou interdire les techniques
sont analogues ce qui a t vu prcdemment.

AM7

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

SQL Server Management Studio


Fentre des proprits de la base de donnes concerne:

Transact SQL
La mme opration peut tre ralise en Transact SQL l'aide de l'instruction GRANT.
GRANT permissionBaseDeDonnes [,]
TO utilisateur [,n]
[WITH GRANT OPTION]
[AS {group | role } ]
permissionBaseDeDonnes : La ou les permissions de base de donnes accorde(s).
Utilisateur : Compte d'utilisateur de base de donnes qui reoit le privilge.
AS {group | role} : Contexte de scurit utilis pour pouvoir accorder le privilge.
Exemple:
GRANT ALTER ANY USER
TO Sophie

AM8

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

Voici la liste des privilges qui correspondant ce niveau:

1.3. Droits au niveau du serveur


SQL Server 2005 permet d'attribuer des privilges au niveau du serveur. Ces privilges ne sont pas accords un
utilisateur de base de donnes mais une connexion.
Comme pour les droits d'utilisation des objets et des instructions, il est possible d'accorder ces privilges avec une
option d'administration. Ainsi, la connexion qui possde ce droit peut accorder ce mme droit une ou plusieurs autres
connexions.
Les diffrents droits qu'il est possible d'accorder au niveau serveur sont:

AM9

Administration SQL Serveur

Chapitre 6 : Gestion des autorisations

Toutes les informations relatives aux privilges accords au niveau du serveur sont visibles au travers de la vue
sys.server_permissions

AM10

You might also like