Vous êtes sur la page 1sur 30

Université de Carthage

Cours: Administration des Bases de Données


L2 Génie Logiciel et Système d'Information

Chapitre 4: Contrôle d’accès SGBD

Asma Ben Bouyahia

a s m a . b e n b o u y a h i a @ i s s a t m . u c a r. t n

AU: 2021/2022
Sujets, objets, privilèges et rôles

 Sujet
• Utilisateurs, groupe d’utilisateurs, tous les utilisateurs
 Objet
• BD, tables, vues, index, procédures
 Privilèges: autorisations: droit accordé pour utiliser un type d’instruction SQL ou pour
accéder à un objet
- sur les tables
- sur le schéma
- sur la BD
 Rôles
- groupe de privilèges

Asma Ben Bouyahia 2


Contrôle d’accès SQL

Différentes politiques:

 Administration centralisée: un petit nombre d’utilisateurs peut accorder ou


révoquer les privilèges

 Administration basée sur le propriétaire: le créateur d’un objet peut accorder


ou révoquer des privilèges

 Administration décentralisée: le créateur d’un objet peut également accorder ou


révoquer des droits à d’autres utilisateurs qui peuvent à leur tour accorder ou refuser
des privilèges sur l’objet

Asma Ben Bouyahia 3


Utilisateurs
• Tout utilisateur a un nom et un mot de passe
• Il est propriétaire de tous les objets qu’il a crée
• Syntaxe simplifiée:
 Création : la création d’un utilisateur permet de lui attribuer un nom et un mot de
passe CREATE USER utilisateur IDENTIFIED BY motdepasse

 Modification : la modification d’un utilisateur permet de lui attribuer un nouveau


mot de passe ALTER USER utilisateur IDENTIFIED BY motdepasse2
NB : il y’a aussi la possibilité de changer les caractéristiques d’un utilisateur à part le
mot de passe : Tablespace, DEFAULT ROLE

 Suppression : la suppression d’un utilisateur va enlever son nom de la liste des


utilisateurs potentiels de la base : DROP USER utilisateur

Asma Ben Bouyahia 4


Utilisateurs: Création
• Syntaxe:

• 2 utilisateurs prédéfinis:
 SYSTEM administrateur ORACLE par défaut
 SYS: propriétaire du dictionnaire

Asma Ben Bouyahia 5


Utilisateurs: Création

Quand on crée un utilisateur:


 On lui donne un nom et un mot de passe à changer éventuellement
 On décide des ressources qu’il pourra utiliser
 combien de sessions il pourra ouvrir
 Combien de temps CPU il pourra consommer
 Son profil
 on décide:
 Ce qu’il pourra faire des objets existants
 S’il pourra créer de nouveaux objets
son rôle

Asma Ben Bouyahia 6


Utilisateurs: Création

1. Choix du login:
–Taille maximale 30caractères.
–Ne contient que des lettres [a-z] et des chiffres[0-9]
–Les symboles #,$,_ sont acceptés.

2. Choix de la méthode d’identification : Il existe 2 types d'authentification :


 Authentification par la base de données IDENTIFIED BY <password>
 Authentification par le système d'exploitation IDENTIFIED EXTERNALLY
Ce mode permettra à Oracle de se baser sur l'authentification de l'utilisateur
par le système d'exploitation

3. Choix des TABLESPACEs:


 Pour des raisons de sécurité, on peut restreindre le champ d'action de l'utilisateur en
choisissant les tablespaces que celui-ci sera en mesure d'utiliser.
 Il est très fortement déconseillé d'autoriser un utilisateur à utiliser le tablespace
SYSTEM, qui doit impérativement rester dédié au dictionnaire de données.

Asma Ben Bouyahia 7


Utilisateurs: Création

4. Définir les Quotas du user:


 Une fois les tablespaces identifiés, l'étape suivante va consister à définir l'espace alloué à
l'utilisateur sur chacun des tablespaces.
 Voici les différentes options disponibles pour les quotas :
- Une taille en K (KiloBytes) ou en M (MegaBytes)
- Unlimited

5. Choisir les TABLESPACEs par défaut de l'utilisateur:


 Cette étape va permettre de définir le tablespace permanent et le tablespace
temporaire de l'utilisateur
 Cette étape est indispensable pour éviter toute écriture dans le tablespace SYSTEM
(qui est assigné si aucun tablespace par défaut n'est défini

Asma Ben Bouyahia 8


Utilisateurs: Création

Exemples:

Asma Ben Bouyahia 9


Utilisateurs: Création

Exemples:

Asma Ben Bouyahia 10


Utilisateurs: Modification/Suppression
 Exemples Modification:

 Suppression d ’un utilisateur

• Un utilisateur connecté à la base ne pourra pas être supprimé


• Un utilisateur avec un schéma vide: DROP USER <loginuser>;
• Un utilisateur avec son schéma : DROP USER< login user > CASCADE;

Asma Ben Bouyahia 11


Privilèges

• On distingue:
 Les privilèges systèmes: permettent la création, modification, suppression,
exécution de groupes d'objets
Exemple: CREATE TABLE,CREATE VIEW, CREATE SEQUENCE

 Les privilèges objets: permettent les manipulations sur des objets spécifiques
Exemple: SELECT, INSERT, UPDATE, DELETE
 Ces privilèges varient sensiblement d’un SGBD à un autre
• SQL offre deux commandes pur octroyer ou révoquer des privilèges
 GRANT
 REVOKE

Asma Ben Bouyahia 12


Octroi de Privilèges: GRANT

• Avec:
 ALL tous les privilèges que le donneur peut accorder
 PUBLIC tous les utilisateurs connus du système
 WITH GRANT OPTION possibilité de transmettre les privilèges qui lui sont octroyés

• WITH GRANT vs WITH ADMIN

 WITH GRANT uniquement pour les privilèges objets


 WITH ADMIN uniquement pour les privilèges systèmes

Asma Ben Bouyahia 13


Octroi de Privilèges: GRANT
Exemples: Assigner des privilèges systèmes à un user

Exemples: Assigner des privilèges objets à un user

Pour la m-à-j et la suppression des lignes d’une table , les privilèges UPDATE et DELETE ne
suffisent pas  il faut avoir le privilège SELECT.
Asma Ben Bouyahia 14
Révocation de Privilèges: REVOKE

• Avec:
 CASCADE la révocation concerne tous les utilisateurs cités dans la clause FROM
ainsi que ceux à qui ces privilèges ont été récursivement transmis
 RESTRICT la révocation ne concerne que les utilisateurs cités dans la clause
FROM
 GRANT OPTION FOR ce n’est pas le privilège qui est révoqué mais le droit de le
transmettre

Asma Ben Bouyahia 15


Règles d’octroi/révocation des privilèges

• Octroi des privilèges :


 Un utilisateur ne peut octroyer que les privilèges qu’il possède

• Révocation des privilèges :


 Un utilisateur ne peut révoquer que les privilèges qui lui ont été transmis
 Si l’option CASCADE est spécifié , la révocation d’un privilège est récursive
 Si l’option RESTRICT est spécifié , la révocation d’un privilège à un utilisateur n’est
possible que si celui si n’a pas transmis ce privilège à un autre utilisateur
 Si un utilisateur a reçu un privilège de plusieurs utilisateurs, il ne perd ce privilège
que si tous les utilisateurs le lui retirent

Asma Ben Bouyahia 16


Graphe d’octroi des privilèges

• Outil pratique pour gérer la propagation de privilèges et leur révocation


• Chaque arc représente un octroi de privilège, il est étiqueté par ce privilège

Asma Ben Bouyahia 17


Exemple de révocation en cascade

Asma Ben Bouyahia 18


Importance des vues

Asma Ben Bouyahia 19


Application : mise en place des contrôles d’accès sur une BD

On considère une BD décrivant une petite entreprise :

La BD décrit :

 les employés : nom, salaire, nom du département


 les départements : nom, nom du responsable

Les utilisateurs de la BD sont ses employés :

 Alice est l’administratrice de la BD


 Odile est la directrice du personnel
 Pierre est l’agent comptable
 Alain est responsable du département informatique
 Isabelle est une employé du département informatique

Asma Ben Bouyahia 20


Application : mise en place des contrôles d’accès sur une BD

Création des utilisateurs :


 Alice, l’administratrice crée la BD

CREATE DATABASE mon_entreprise

 Alice se connecte à la BD :
CONNECT TO mon_entreprise USER DBA ;
 Alice crée les utilisateurs :

- CREATE USER alain IDENTIFIED BY alain2013;


- CREATE USER isabelle IDENTIFIED BY isabelle13;
- CREATE USER odile IDENTIFIED BY odile2013;
- CREATE USER pierre IDENTIFIED BY pierre13;

Asma Ben Bouyahia 21


Application : mise en place des contrôles d’accès sur une BD

Création des tables :


a) CREATE TABLE employe (
nom VARCHAR(20) PRIMARY KEY,
nom_dept VARCHAR(20),
salaire FLOAT) ;
a) CREATE TABLE departement (
nom VARCHAR(20) PRIMARY KEY,
responsable VARCHAR(20) REFERENCES employe(nom));
a) ALTER TABLE employe ADD FOREIGN KEY(nom_dept) REFERENCES departement (nom);

Création des vues :


 Alice crée une vue qui cache les salaires des employés
CREATE VIEW affectation (nom, nom_dept) AS
SELECT e.nom, e.nom_dept FROM employe e ;
Asma Ben Bouyahia 22
Application : mise en place des contrôles d’accès sur une BD

Octroi des privilèges :


 Alice transmet à Odile, la directrice du personnel, les privilèges de consulter et
de modifier le département dans lequel travaille un employé et le responsable
d’un département :

GRANT SELECT, UPDATE (nom_dept) ON employe TO odile;

GRANT SELECT, UPDATE (reponsable) ON department TO odile;

 Alice transmet à pierre, l’agent comptable, les privilèges de consulter et de


modifier le salaire des employés
GRANT SELECT, UPDATE (salaire) ON employe TO pierre;

Asma Ben Bouyahia 23


Application : mise en place des contrôles d’accès sur une BD

Asma Ben Bouyahia 24


Application : mise en place des contrôles d’accès sur une BD

Exemple révocation des privilèges :

 Alice révoque le privilège de Pierre de modifier le salaire d’un


employé
REVOKE UPDATE (salaire) ON employé FROM pierre;
 Pierre possède encore le privilège de consulter les affectations.

Asma Ben Bouyahia 25


Rôles

• Un rôle est un ensemble de privilèges


• Un rôle renforce la sécurité des données et réduit significativement la difficulté
et le cout de son administration
• Les rôles sont assignés aux utilisateurs qui peuvent avoir plusieurs rôles
• Les rôles sont organisés hiérarchiquement
• Il ne faut pas confondre rôle et utilisateur
 un utilisateur peut être propriétaire d’un objet, un rôle ne le peut pas

• ORACLE fournit un ensemble de rôles prédéfinis ( CONNECT , RESSOURCES,


DBA, MGMT_USER,…)

Asma Ben Bouyahia 26


Gestion des Rôles

Asma Ben Bouyahia 27


Exemple: les Rôles

Les 4 rôles de la BD ma_petite_entreprise :

Asma Ben Bouyahia 28


Exemple: les Rôles

Les 4 rôles de la BD ma_petite_entreprise :

Asma Ben Bouyahia 29


Profils

• Afin d'augmenter la sécurité de la base de données, il est intéressant de gérer en plus des
mots de passe un certain nombre d’information comme le nombre maximal de tentatives
de connexion à la base, le temps de verrouillage d'un compte, etc...
• Les profils est un concept Oracle qui représente un ensemble de limites concernant
l’utilisation des ressources
• Il existe un profil par défaut appelé DEFAULT. Il est par défaut affecté à un utilisateur lors
de sa création
• Syntaxe :

Asma Ben Bouyahia 30

Vous aimerez peut-être aussi