Vous êtes sur la page 1sur 4

SQL> conn system/manager

Connecté.
=======SYSTEM

SQL> create role r_session;


Rôle créé.

SQL> grant create session to r_session with admin option;


Autorisation de privilèges (GRANT) acceptée.

SQL> create user r_user1 identified by r_user1;


Utilisateur créé.

SQL> create user r_user2 identified by r_user2;


Utilisateur créé.

SQL> grant r_session to r_user1;


Autorisation de privilèges (GRANT) acceptée.

SQL> conn r_user1/r_user1


Connecté.
=======R_USER1

SQL> grant r_session to r_user2;


ERREUR à la ligne 1 :
ORA-01932: option ADMIN non accordée pour rôle 'R_SESSION'

SQL> grant create session to r_user2;


Autorisation de privilèges (GRANT) acceptée.

SQL> conn r_user2/r_user2


Connecté.
=======R_USER2

SQL> conn system/manager


Connecté.
=======SYSTEM

SQL> grant select on hr.employees to r_user1 with grant option;


Autorisation de privilèges (GRANT) acceptée.

SQL> conn r_user1/r_user1


Connecté.
=======R_USER1

SQL> select count(*) from hr.employees;


COUNT(*)
----------
104

1/4
SQL> grant select on hr.employees to r_user2;
Autorisation de privilèges (GRANT) acceptée.

SQL> conn r_user2/r_user2


Connecté.
=======R_USER2

SQL> select count(*) from hr.employees;


COUNT(*)
----------
104

SQL> conn system/manager


Connecté.
=======SYSTEM

SQL> desc dba_tab_privs


Nom
-------------------------------
GRANTEE
OWNER
TABLE_NAME
GRANTOR
PRIVILEGE
GRANTABLE
HIERARCHY

SQL> select * from dba_tab_privs where grantee in ('R_USER1','R_USER2');


GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA
--------------------------------------------------------------------------------------------------------
R_USER2 HR EMPLOYEES R_USER1 SELECT NO
R_USER1 HR EMPLOYEES HR SELECT YES

SQL> revoke select on hr.employees from r_user1;


Suppression de privilèges (REVOKE) acceptée.

SQL> select * from dba_tab_privs where grantee in ('R_USER1','R_USER2');


aucune ligne sélectionnée

SQL> conn r_user1/r_user1;


Connecté.
=======R_USER1

SQL> select count(*) from hr.employees;


ERREUR à la ligne 1 :
ORA-01031: privilèges insuffisants

SQL> conn r_user1/r_user_2


Connecté.
=======R_USER1

2/4
SQL> select count(*) from hr.employees;
ERREUR à la ligne 1 :
ORA-01031: privilèges insuffisants

SQL> conn system/manager


Connecté.
=======SYSTEM

SQL> revoke create session from r_user1;


ERREUR à la ligne 1 :
ORA-01952: privilèges du système non accordés à 'R_USER1'

SQL> revoke r_session from r_user1;


Suppression de privilèges (REVOKE) acceptée.

SQL> conn r_user1/r_user1


ORA-01045: user R_USER1 lacks CREATE SESSION privilege; logon denied
Avertissement : vous n'êtes plus connecté à ORACLE.

SQL> conn r_user2/r_user_2


Connecté.
=======R_USER2

SQL> conn system/manager


Connecté.
=======SYSTEM

SQL> create user r_user3 identified by r_user3;


Utilisateur créé.

SQL> grant create session to r_user3;


Autorisation de privilèges (GRANT) acceptée.

SQL> grant create session to r_user1;


Autorisation de privilèges (GRANT) acceptée.

SQL> grant select on hr.employees to public;


Autorisation de privilèges (GRANT) acceptée.

SQL> conn r_user1/r_user_2


Connecté.
=======R_USER1

SQL> select count(*) from hr.employees;


COUNT(*)
----------
104
SQL> conn r_user2/r_user_2
Connecté.
=======R_USER2

3/4
SQL> select count(*) from hr.employees;
COUNT(*)
----------
104

SQL> conn r_user3/r_user3


Connecté.
=======R_USER3

SQL> select count(*) from hr.employees;


COUNT(*)
----------
104

SQL> conn system/manager


Connecté.
=======SYSTEM

SQL> revoke select on hr.employees from public;


Suppression de privilèges (REVOKE) acceptée.

SQL> conn r_user3/r_user3


Connecté.
=======R_USER3

SQL> select count(*) from hr.employees;


ERREUR à la ligne 1 :
ORA-01031: privilèges insuffisants

4/4

Vous aimerez peut-être aussi