CREATE ROLE.
C'est quoi un Role ?
Comment créer un Role dans Oracle ?
Comment attribuer des Privilèges à un Role ?
Comment attribuer un Role à un Utilisateur ou à un Role ?
- Un Rôle peut être attribué à un autre Rôle.
- Un Rôle n'appartient à personne.
- Un Utilisateur peut avoir plusieurs Rôles.
Un Rôle est un ensemble de privilèges objets et systèmes attribué à un Utilisateur, et qui permet de simplifier la gestion des droits dans Oracle. La
commande CREATE ROLE crée un rôle initialement vide.
La création d'un Rôle se déroule en trois étapes :
- CREATE ROLE - Création du Rôle.
- GRANT TO - GRANT ON - Attribution des Privilèges Objets et Systèmes au Rôle.
- GRANT TO - Attribution du Rôle à un Utilisateur.
Description de la commande Sql CREATE ROLE.
Syntaxe CREATE ROLE.
CREATE ROLE role [ NOT IDENTIFIED | IDENTIFIED { BY password | USING [ schema. ] package | EXTERNALLY | GLOBALLY } ] ; |
-
NOT IDENTIFIED.
Indique que le Rôle sera activé sans identification, aucun mot de passe requis, c'est la valeur par défaut. -
IDENTIFIED BY password.
Indique qu'un mot de passe est nécessaire pour activer le Rôle avec la commande SET ROLE (LOCAL ROLE). -
IDENTIFIED USING package.
Indique que seul le Package peut activer le Rôle (ROLE APPLICATION). -
IDENTIFIED EXTERNALLY.
Indique qu'une identification externe est nécessaire pour activer le Rôle (EXTERNAL ROLE). -
IDENTIFIED GLOBALLY.
Indique qu'une identification d'un utilisateur GLOBAL est nécessaire pour activer le Rôle (GLOBAL ROLE).
Exemple CREATE ROLE.
C:\>SET ORACLE_SID=DBTEST C:\>SQLPLUS / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Dim. Août 28 13:15:52 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connecté à : Oracle Database 10g Release 10.2.0.1.0 - Production SQL> CREATE ROLE r_test IDENTIFIED BY passe; Rôle créé. SQL> |
Nous simulons une connexion avec l'utilisateur TEST qui a uniquement le Rôle RESOURCE.
C:\>SET ORACLE_SID=DBTEST C:\>SQLPLUS test/test SQL*Plus: Release 10.2.0.1.0 - Production on Dim. Août 28 13:32:39 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. ERROR: ORA-01045: l'utilisateur TEST n'a pas le privilège CREATE SESSION ; connexion refusée SQL> |
Nous allons alors attribuer des privilèges systèmes à notre RÔLE r_test et ensuite l'attribuer à l'utilisateur test.
Attribution de Privilèges GRANT sur un ROLE.
SQL> GRANT CREATE SESSION TO r_test; Autorisation de privilèges (GRANT) acceptée. SQL> SQL> |
Attribution de ROLE à un Utilisateur.
SQL> GRANT r_test TO test; Autorisation de privilèges (GRANT) acceptée. SQL> |
C:\>SET ORACLE_SID=DBTEST C:\>SQLPLUS test/test SQL*Plus: Release 10.2.0.1.0 - Production on Dim. Août 28 14:22:53 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connecté à : Oracle Database 10g Release 10.2.0.1.0 - Production SQL> SQL> SELECT * FROM scott.dept; SELECT * FROM scott.dept * ERREUR à la ligne 1 : ORA-00942: Table ou vue inexistante SQL> |
L'utilisateur peut maintenant se connecter car le RÔLE r_test a reçu le privilège système CREATE SESSION.
Par contre il ne peut pas effectuer un SELECT sur la table DEPT du schéma SCOTT.
Attribution Privilège Objet GRANT sur un ROLE.
SQL> GRANT SELECT ON scott.dept TO r_test; Autorisation de privilèges (GRANT) acceptée. SQL> SQL> SELECT * FROM scott.dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> |
Révoquer Privilège Object (REVOKE) d'un ROLE.
SQL> REVOKE SELECT ON scott.dept FROM r_test; Suppression de privilèges (REVOKE) acceptée. SQL> SQL> SELECT * FROM scott.dept; SELECT * FROM scott.dept * ERREUR à la ligne 1 : ORA-00942: Table ou vue inexistante SQL> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Les Roles CONNECT - RESOURCE - DBA • Les Vues Privilèges et Roles Oracle • Liste System Privileges • Liste Object Privileges • Voir les Privilèges Systèmes des ROLES d'un USER • Voir les Privilèges Objets des ROLES d'un USER • Voir les ROLES et ROLES Imbriqués d'un User |
Ecrire un commentaire - Voir les 0 commentaires

