Vous êtes sur la page 1sur 28

BASES DE DONNEES AVANCEES

Lotfi NAJDI
Année Universitaire 2020 / 2021
Licence Professionnelle Génie Informatique
Faculté Polydisciplinaire de Taroudant
Contrôle d’accès des utilisateurs

Dans un environnement à utilisateurs multiples, il est indispensable d’assurer la sécurité de l'accès à


la base de données et de son exploitation.

les mécanismes de sécurité du serveur Oracle permettent de :

• Contrôler l'accès à la base de données.

• Donner accès à des objets spécifiques de la base de données.

• Vérifier les privilèges accordés à l’aide du Data Dictionary.

• Oracle permet de contrôler deux types de privilèges :

• privilèges système (System Privileges)

• les privilèges objets (Object privileges)


Privilèges

 Privilèges système : Un privilège système donne à un utilisateur la possibilité d'effectuer une action

particulière, ou d'effectuer une action sur un type d’objet particulier du schéma :

 Par exemple, le privilège système CREATE TABLE permet à un utilisateur de créer des tables dans le

schéma associé à cet utilisateur

 le privilège système CREATE USER permet à un utilisateur de créer des utilisateurs de base de

données.

 Les privilèges objets : permet à un utilisateur d'effectuer une action particulière sur un objet

spécifique de schéma. Différents privilèges d'objet sont disponibles pour différents types d'objets de

schéma. Le privilège de sélectionner des lignes dans la table EMPLOYEES ou de supprimer des lignes

dans la table DEPARTMENTS sont des exemples de privilèges objets.


Privilèges

Privilèges système : effectuer des opérations d’administration sur la base

CREATE USER, CREATE ROLE, CREATE TABLESPACE, RESTRICTED SESSION, SYSDBA, ALTER
DATABASE, ALTER SYSTEM,…

GRANT CREATE SESSION TO user ; --permet à l’utilisateur de se connecter

Les privilèges sur les objets (Object privileges) : effectuer des opérations sur des objets spécifiques

comme l’interrogation sur une table, l’insertion dans une table, le droit d’exécution d’une procédure

stockée, la suppression dans une table, la modification des données d’une table, etc.

GRANT SELECT ON HR.EMPLOYEES TO user [with grant option];


Privilèges

 Les privilèges sont attribués avec la commande GRANT.

 La révocation est effectuée avec la commande REVOKE

 Héritage de transmission de privilège dans la base

 Pour les privilèges système, la clause WITH ADMIN OPTION permet au bénéficiaire de

transmettre à son tour le privilège qui lui est transmis.

 En ce qui concerne les privilèges sur les objets, la clause WITH GRANT OPTION permet au

bénéficiaire de transmettre à son tour le privilège qui lui est transmis sur l’objet en question.
System Privileges
Privilèges système d’un DBA

Privilèges système Opérations possibles pour le détenteur du privilège

CREATE USER Créer d'autres utilisateurs d'Oracle.

DROP USER Supprimer un autre utilisateur.

DROP ANY TABLE Supprimer une table dans n'importe quel schéma.

BACKUP ANY TABLE Sauvegarder n'importe quelle table dans n'importe quel schéma avec
l'utilitaire d'exportation.
SELECT ANY TABLE Interroger des tables, des vues ou des vues matérialisées dans
n'importe quel schéma.
CREATE ANY TABLE Créer des tables dans n'importe quel schéma.

Pour Lister tous les Privilèges système , vous pouvez consulter SESSION_PRIVS.
Créer des utilisateurs

Le DBA peut créer des utilisateurs avec l'instruction CREATE USER.

CREATE USER user


IDENTIFIED BY password;

User: est le nom de l'utilisateur à créer


Password : indique le mot de passe à utiliser pour se connecter

CREATE USER demo


IDENTIFIED BY demo;
Privilèges système

Après la création d'un utilisateur, le DBA peut lui accorder des privilèges système spécifiques

GRANT privilege [, privilege...]


TO user [, user| role, PUBLIC...];

Privilege : Le privilège système à accorder

User |role | PUBLIC : est le nom de l'utilisateur, le nom du rôle, ou PUBLIC (désigne le fait privilège est accordé à tous
les utilisateurs)
Privilèges système d’un utilisateur

Un développeur d'applications, par exemple, peut avoir les privilèges système suivant:

Privilèges système Opérations autorisées


CREATE SESSION Se connecter à la base de données.
CREATE TABLE Créer des tables dans le schéma de l'utilisateur.
CREATE SEQUENCE Créer des Séquences dans le schéma de l'utilisateur.
CREATE VIEW Créer des vues dans le schéma de l'utilisateur.
CREATE PROCEDURE Créer des procédures stockées, fonctions ou un packages dans le
schéma de l'utilisateur.
Privilèges système d’un utilisateur

Le DBA peut accorder à un utilisateur des privilèges spécifiques au système.

GRANT create session, create table, create sequence, create view


TO demo;
Roles
Rôles

 Groupe ou collections de privilèges


 Objets

 Système

 Moyen pratique pour donner des autorisations en une seule commande plutôt que d’attribuer
chaque privilège de manière individuelle.

 Un rôle peut être également attribué à un autre

 Plusieurs rôles peuvent être attribués simultanément à un utilisateur

 Intérêts des Rôles


 Gestion simplifiée des privilèges

 Gestion dynamique des privilèges


Créer un rôle et lui attribuer des privilèges
Nom du rôle à créer

Syntaxe :
CREATE ROLE role;

Créer un rôle :
CREATE ROLE manager;
Après la création du rôle, le
DBA peut utiliser l'instruction
GRANT pour attribuer des
Attribuer le privilèges : privilèges au rôle ainsi que
GRANT create table, create view pour attribuer le rôle aux
utilisateurs
TO manager;

Attribuer le rôle aux utilisateurs : GRANT manager


TO BELL, KOCHHAR;
Modifier le mot de passe

 Le DBA crée le compte d'utilisateur et peut initialiser le mot de passe.

 L’utilisateur peut modifier son mot de passe en utilisant l’instruction ALTER USER.

ALTER USER user IDENTIFIED BY password ;

user : le nom de l'utilisateur


password : le nouveau mot de passe
Privilèges Objets(Object Privileges)
Privilèges Objets
 Les privilèges objets varient d'un objet à un autre.
 Le propriétaire(owner) d'un objet dispose de tous les privilèges sur l'objet.
 Un propriétaire peut conférer des privilèges spécifiques sur l'objet à d’autres utilisateurs

GRANT object_priv [(columns)]


ON object
TO {user|role|PUBLIC} [WITH GRANT OPTION];

object_priv : privilège objet à attribuer (ALL indique tous les privilège sur l'objet )
Columns : Spécifie la colonne d'une table ou d'une vue sur laquelle des privilèges sont accordés
ON : l'objet sur lequel les privilèges sont attribués
TO : Indique à qui le privilège est accordé (PUBLIC accorder les privilèges à tous les utilisateurs
WITH GRANT OPTION : Permet au bénéficiaire (grantee) d'accorder les privilèges de l'objet à d'autres utilisateurs et rôles
Attribuer des privilèges Objets

Attribuer des privilèges d'interrogation (SELECT) sur la table EMPLOYEES :

GRANT SELECT
ON employees
TO demo;

Accorder des privilèges de mettre à jour (update) sur des colonnes spécifiques aux utilisateurs et aux rôles

GRANT UPDATE (department_name, location_id)


ON departments
TO demo, manager;
Transférer les privilèges Objets

Donner à un utilisateur le droit de transférer des privilèges :

GRANT SELECT, INSERT


ON departments
TO demo
WITH GRANT OPTION;

Permet à tous les utilisateurs d'interroger la table DEPARTMENTS

GRANT SELECT
ON HR.departments
TO PUBLIC;
Révoquer les privilèges
Révoquer les privilèges objets

 l’instruction REVOKE permet de révoquer les privilèges attribués aux autres utilisateurs.

 Les privilèges accordés à d'autres par la clause "WITH GRANT OPTION" sont également révoqués.

REVOKE {privilege [, privilege...]|ALL}


ON object
FROM {user[, user...]|role|PUBLIC} ;
Révoquer les privilèges objets

Révoquer les privilèges SELECT et INSERT accordés à l'utilisateur demo sur la table DEPARTMENTS.

REVOKE SELECT, INSERT


ON departments
FROM demo;
Vérification des privilèges attribués

Vue du Data Dictionary Description

ROLE_SYS_PRIVS System privileges granted to roles

ROLE_TAB_PRIVS Table privileges granted to roles

USER_ROLE_PRIVS Roles accessible by the user

USER_SYS_PRIVS System privileges granted to the user

USER_TAB_PRIVS_MADE Object privileges granted on the user’s objects

USER_TAB_PRIVS_RECD Object privileges granted to the user

USER_COL_PRIVS_MADE Object privileges granted on the columns of the user’s objects

USER_COL_PRIVS_RECD Object privileges granted to the user on specific columns


Vérification des privilèges attribués

SELECT *

FROM ROLE_SYS_PRIVS;
Vérification des privilèges attribués

SELECT *

FROM USER_ROLE_PRIVS;
Rôles prédéfinis dans Oracle
Rôle Définition

Connect Permet à un utilisateur de se connecter à la base de données.


Accorder ce rôle à tout utilisateur ou application qui a besoin d'un
accès à la base de données.

DBA Permet à un utilisateur d'exécuter la majorité des tâches


administratives, comme la création d'utilisateurs et l'attribution de
privilèges, la création et l'attribution de rôles, la création, la
modification et la suppression des objets de n'importe quel schéma,
etc.

Resource Permet à un utilisateur de créer, modifier et supprimer certains


types d'objets du schéma associé à cet utilisateur. Accorder ce rôle
aux développeurs et aux autres utilisateurs qui doivent créer des
objets de schéma. (Créer: triggers, procédures stockées,
séquences)

Vous aimerez peut-être aussi