ROLES / PRIVILEGES

Dimanche 28 août 2011 7 28 /08 /Août /2011 12:02

 

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>

 

Haut de Page www.dba-ora.fr

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
Par Daniel Roesch - Publié dans : ROLES / PRIVILEGES
Ecrire un commentaire - Voir les 0 commentaires
Vendredi 26 août 2011 5 26 /08 /Août /2011 00:56

 

Oracle Object Privileges.

Voir les Privilèges Objets.

Liste des Objects et Privileges.

Voici une liste détaillant les différents Objets Oracle et leurs Privilèges.
Les Privilèges sont des permissions et permettent à un Utilisateur d'accéder à des objets de schéma ou d'exécuter des programmes. Les Privilèges peuvent être accordés (GRANT) ou révoquée (REVOKE) à un utilisateur, à PUBLIC, ou à un rôle.

 

  Directory Functions
Procedures
Packages
Index
Types
Library Materialized View Operator Sequence Table User defined Type View
ALTER - - - - - - x x - -
DELETE - - -   x - - x - x
EXECUTE - x x x - x - - x -
DEBUG - x - - - - - x x x
FLASHBACK - - - - x - - x - x
INDEX - - - - - - - x - -
INSERT - - - - x - - x - x
ON COMMIT REFRESH - - - - - - - x - -
QUERY REWRITE - - - - - - - x - -
READ x - - - - - - - - -
REFERENCES - - - - - - - x - x
SELECT - - - - x - x x - x
UNDER - - - - - - - - x x
UPDATE - - - - x - - x - x
WRITE x - - - - - - - - -

 

Haut de Page www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Privileges des Roles CONNECT RESOURCE DBA
• Voir et Lister les Privilèges et Roles Oracle
Par Daniel Roesch - Publié dans : ROLES / PRIVILEGES
Ecrire un commentaire - Voir les 0 commentaires

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés