Gestion des privilèges
Définition d'un rôle
L'administrateur va devoir créer des rôles regroupant certains
privilèges système et certains privilèges
« objets ». La définition d'un rôle
nécessite trois actions :
- création du rôle. Cette phase ne sert qu'à
nommer un nouvel objet reconnu par l'instance. Aucun privilège ne sera
géré à ce niveau de déclaration,
- ajout de droits à ce rôle. Ici, l'administrateur
définit les tâches que pourront effectuer les utilisateurs qui
posséderont ce rôle,
- assignation du rôle à un utilisateur. Maintenant que
nous disposons d'un rôle entièrement qualifié, il peut
être utilisé.
Pour créer un rôle, l'administrateur utilise la commande CREATE
ROLE:
Création des roles
L'ordre CREATE ROLE
Les paramètres correspondent à :
- identified by : indique le mot de passe du rôle. Dans ce cas,
le rôle est défini comme « interne » pour
Oracle.
- identified externally : le rôle correspond au groupe
Unix.
Gestion des rôles
Il est possible de supprimer un rôle via l'ordre DROP ROLE, ou de
modifier ses caractéristiques (cette fonctionnalité est
essentiellement utilisée pour changer le mot de passe) via l'ordre
ALTER ROLE.
Modification d'un role
Comme dans le cas de l'utilisateur, l'ordre ALTER ROLE/USER permet de
changer le mot de passe d'un utilisateur/rôle.
Pour les petits curieux
Il est possible de récupérer les rôles créés
dans une instance :
Vérification
Allouer des privilèges à un utilisateur ou à un
rôle
Pour modifier les privilèges d'un utilisateur ou d'un rôle,
l'administrateur dispose de deux ordres :
- GRANT : pour ajouter un privilège,
- REVOKE : pour supprimer un privilège.
Nous allons ajouter le privilège de connexion (create session) et
la création de tables pour le rôle ROLE_DE_BASE :
Gestion des privilèges
Il est possible d'assigner une liste de privilèges à un ou
plusieurs utilisateurs, la syntaxe est alors : grant priv1, priv2,
priv3 to user1, user2 ;
L'ordre GRANT
Les paramètres correspondent à :
- to : indique le nom de l'utilisateur, du rôle ou du groupe
PUBLIC. La modification du groupe PUBLIC permet une intervention
sur tous les utilisateurs en une seule manipulation.
- with admin option : indique que les privilèges
système pourront être transmis (option impossible pour un
rôle) par l'utilisateur venant de recevoir ce
privilège.
- on : indique le nom de l'objet sur lequel sera possible l'action
définie par le privilège. L'administrateur peut donner, par
exemple, le privilège de modifier une table quelconque (ANY
TABLE) ou une table particulière. Dans ce dernier cas, le
paramètre nom_objet permet de qualifier la table.
- with grant option : indique que les privilèges objets
pourront être transmis par l'utilisateur venant de recevoir ce
privilège.
Retrouver les privilèges associés à un
rôle
Pour visualiser les privilèges associés à un rôle,
nous visualisons la table ROLE_SYS_PRIVS :
Vérification
Supprimer des privilèges à un utilisateur ou à un
rôle
Pour supprimer un privilège, l'administrateur utilise l'ordre
REVOKE :
Suppression des privilèges
L'ordre REVOKE peut être passé avec l'option CASCADE
CONSTRAINTS, alors les privilèges hérités sont
aussi supprimés (en fonction des remarques faites au début du
chapitre, selon que les privilèges soient de type système ou de
type objet).