ROLES / PRIVILEGES

Dimanche 4 septembre 2011 7 04 /09 /Sep /2011 17:19

 

REVOKE USER et ROLES PRIVILEGES.

Comment annuler des droits à un Utilisateur, un rôle. ?
Comment revoker des privilèges systemes à un USER dans Oracle. ?
Comment annuler des privilèges objets avec la commande REVOKE dans Oracle. ?

 

La commande REVOKE permet de révoquer, annuler un ou plusieurs privilèges à un ou plusieurs bénéficiaires.
Lorsque vous voulez révoquer un ou plusieurs privilèges à un utilisateur ou à un rôle, on utilise la commande sql REVOKE.

Lorsque les privilèges systèmes et privilèges objets sont révoqués, ils prennent effet immédiatement et ne peuvent plus être exercés.

Sachez que pour révoquer 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.

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

 

Description de la commande Sql REVOKE.

Syntaxe REVOKE.

 
REVOKE { { system_privilege_name
         | role
         | ALL PRIVILEGES
         } FROM { user [ IDENTIFIED BY password ]
                       | role
                       | PUBLIC 
                }

       | 

         { object_privilege_name | ALL [ PRIVILEGES ] }
           ON { schema.object
              | { DIRECTORY directory_name
              | JAVA { SOURCE | RESOURCE } [ schema. ]object
              }
         }
           FROM { user [ IDENTIFIED BY password ]
                       | role
                       | PUBLIC 
                }
         [ CASCADE CONSTRAINTS | FORCE ]
       } ;
  • system_privilege_name.
    Indique le privilège système à révoquer. Vous pouvez consulter les systems privilèges dans la vue du dictionnaire de données : SYSTEM_PRIVILEGE_MAP
  • object_privilege_name.
    Indique le privilège objet à révoquer.
  • ALL PRIVILEGES.
    Indique que tous les privilèges seront révoqués.
  • PUBLIC.
    Indique que l'on revoque le(s) privilège(s) à tous les utilisateurs.
  • CASCADE CONSTRAINTS.
    Cette clause ne s'applique que si vous révoquez le privilège REFERENCES ou ALL [PRIVILEGES]. Elle supprime toutes les contraintes d'intégrité référentielle faites par le révoqué.
  • FORCE.
    Cette clause ne s'applique que si vous révoquez le privilège objet EXECUTE User defined Type.

 

revoke-privilege-role

 

REVOKE SYSTEM PRIVILEGES.

Vous devez avoir le privilège système GRANT ANY PRIVILEGE ou avoir reçu ce rôle en question avec la clause WITH ADMIN OPTION.

 
 
 
SQL> REVOKE CREATE SESSION FROM r_role;
 
Suppression de privilèges (REVOKE) acceptée.
 
SQL> REVOKE CREATE TABLE FROM scott;
 
Suppression de privilèges (REVOKE) acceptée.
 
SQL> REVOKE ALL PRIVILEGES FROM r_role;
 
Suppression de privilèges (REVOKE) acceptée.

SQL>

 

 

REVOKE OBJECT PRIVILEGES.

 
 
SQL> REVOKE SELECT ON scott.dept FROM r_role;
 
Suppression de privilèges (REVOKE) acceptée.
 
SQL>
SQL> REVOKE DELETE ON scott.dept FROM r_role;
 
Suppression de privilèges (REVOKE) acceptée.
 
SQL>
SQL> REVOKE UPDATE ON scott.emp FROM user_2;
 
Suppression de privilèges (REVOKE) acceptée.
 
SQL>
SQL> REVOKE INSERT ON scott.bonus FROM user_2;
 
Suppression de privilèges (REVOKE) 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
• GRANT SYSTEM PRIVILEGES
• 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
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

À 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