Jeudi 1 septembre 2011 4 01 /09 /Sep /2011 22:52

 

GRANT SYSTEM PRIVILEGES.

Comment attribuer des droits à un Utilisateur, un rôle. ?
Comment attribuer des privilèges systemes à un USER dans Oracle. ?
Comment accorder des privilèges systemes avec la commande GRANT dans Oracle. ?

 

La commande GRANT permet d’attribuer un ou plusieurs privilèges à un ou plusieurs bénéficiaires.
Lorsque vous voulez attribuer un ou plusieurs privilèges à un utilisateur ou à un rôle, on utilise la commande sql GRANT.

Lorsque les GRANT privilèges systèmes sont accordées, ils prennent effet immédiatement, il n'est pas nécessaire pour l'utilisateur de se déconnecter.
Les Privilèges Systèmes doivent être attribués avec une grande attention, synonyme de Pouvoir et donc de Danger. Normalement, ce n'est jamais un utilisateur final qui contrôle et attribue ces privilèges mais plutôt des administrateurs (DBA) et développeurs.

Sachez que pour attribuer un privilège système il faut soit :
- Avoir reçu le privilège en question avec la clause WITH ADMIN OPTION.
- Avoir reçu le privilège système GRANT ANY PRIVILEGE.

Pour pouvoir créer une Table dans votre schéma il vous faut par exemple le privilège système CREATE TABLE.
Par contre pour pouvoir créer une Table dans n'importe quel schéma il vous faut le privilège système CREATE ANY TABLE. Le mot clef ANY est utilisé pour chaque objet appartenant à un schéma, par exemple le privilège CREATE ANY TABLESPACE n'existe pas car un TABLESPACE n'appartient pas à un schéma.

 

Description de la commande Sql GRANT.

Nous voyons dans cette partie uniquement l'attribution de Privilèges Systèmes avec la commande GRANT.

Syntaxe GRANT.(system privileges)

 
GRANT { { system_privilege_name
        | role
        | ALL PRIVILEGES 
        }
TO      { user [ IDENTIFIED BY password ]
        | role
        | PUBLIC
        }
[ WITH ADMIN OPTION ]
      };
  • system_privilege_name.
    Indique le privilège système à attribuer. Vous pouvez les consulter dans la vue du dictionnaire de données : SYSTEM_PRIVILEGE_MAP
  • ALL PRIVILEGES.
    Indique que tous les privilèges systèmes seront accordés.
  • PUBLIC.
    Indique que l'on attribue le(s) privilège(s) à tous les utilisateurs.
  • IDENTIFIED BY.
    Indique et désigne un utilisateur inexistant dans la base, il sera créé à l’exécution du GRANT.
  • WITH ADMIN OPTION.
    Indique que le bénéficiaire peut :
    - Retransmettre les privilèges reçus à un rôle ou à un autre utilisateur.
    - Révoquer les privilèges reçus d'un autre utilisateur ou rôle.
    - Supprimer le rôle avec DROP ROLE.
    - Conserver son privilège système ou rôle même si le User qui a cédé ce droit est supprimé. (Contrairement à un Privilège Objet)

 

GRANT SYSTEM PRIVILEGES TO ROLE.

Vous devez avoir le privilège système GRANT ANY ROLE ou avoir reçu ce rôle en question avec la clause WITH ADMIN OPTION, ou alors avoir créer ce rôle.

 
 
 
SQL> GRANT CREATE SESSION TO r_role;
 
Autorisation de privilèges (GRANT) acceptée.
 
SQL> GRANT CREATE TABLE TO r_role;
 
Autorisation de privilèges (GRANT) acceptée.
 
SQL> GRANT INSERT ANY TABLE TO r_role;
 
Autorisation de privilèges (GRANT) acceptée.
 
SQL> GRANT create session, create table, insert any table TO r_role;

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

SQL>


 

 

GRANT SYSTEM PRIVILEGES TO USER.

 
 
 
SQL> GRANT grant any role TO scott;

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

SQL> GRANT create session TO scott;

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

SQL> GRANT drop any role, insert any table TO scott;

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

SQL> GRANT select any dictionary TO scott;

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

SQL>

 

 

Haut de Page www.dba-ora.fr

 

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

À lire aussi…

DBA Online

Download Ressources Oracle

Rechercher

Tutoriel - Cours

Paramètres Instance

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