Vous êtes sur la page 1sur 4

Introduction

Les systmes de gestion de base de donnes sont accessibles simultanment par plusieurs utilisateurs. Afin de conserver l'intgrit de la base de donne, il est ncessaire de dfinir chacun des utilisateurs des droits d'accs. Ces droits limitent l'accs des utilisateurs certaines informations de la base et leurs interdisent certaines actions. C'est l'administrateur de bases de donnes (DBA) qui a pour rle de grer les utilisateurs : il cre ou supprime des comptes utilisateurs, attribue ou retire les privilges d'accs aux donnes des diffrents utilisateurs.[1] Cependant, mme si le DBA conserve un regard sur les actions entreprises par les utilisateurs, l'attribution des privilges sur un objet d'une base de donnes est dcentralise. En effet, le crateur d'un objet possde non seulement tous les droits de lecture, de modification et de suppression de cet objet mais il peut aussi accorder des droits sur cet objet d'autres utilisateurs. Par consquent, chaque donne peut tre dfinie, soit comme confidentielle et accessible un seul utilisateur, soit comme partageable entre plusieurs utilisateurs. Tout utilisateur doit possder un nom d'utilisateur et un mot de passe pour pouvoir accder la base. C'est ce nom d'utilisateur qui sera le lien avec les droits d'accs qui lui sont accords. Pour consulter ces droits, l'utilisateur peut utiliser les commandes SQL suivantes :[2] USER_TAB_GRANTS; Droits sur les objets donns par l'utilisateur ou dont l'utilisateur est le bnficiaire. USER_TAB_GRANTS_MADE; Droits sur ses objets, tables ou vues, donns par l'utilisateur. USER_TAB_GRANTS_RECD; Droits sur des objets donns l'utilisateur. Il existe deux utilisateurs par dfaut sur toute base Oracle : ->l'utilisateur SYS, propritaire des tables et des vues du dictionnaire, ->l'utilisateur SYSTEM, qui a simplement le droit de consultation de ces objets. Ces deux utilisateurs ont par dfaut le rle DBA, ce qui signifie qu'ils ont accs tous les objets de tous les autres utilisateurs de la base et qu'ils ont le droit d'excuter certaines commandes d'exploitation et d'administration.[3] Nous verrons au travers les quelques lignes qui vont suivre comment sont grs les utilisateurs et leurs droits par le DBA et ce, de la cration du compte sa suppression en passant bien videmment par l'attribution des privilges notamment par le biais de la commande ROLE.

1. Cration d'un compte utilisateur.

CREATE USER bob IDENTIFIED BY unbreakable DEFAULT TABLESPACE data TEMPORARY TABLESPACE temp QUOTA 100Mo ON data PROFIL profil_bob; Cet ordre cre un utilisateur nomm 'bob', et dont le mot de passe est 'unbreakable'. bob crera par dfaut ses objets dans la partition 'data' (jusqu' concurrence de '100Mo'). Son espace de travail temporaire (utilis en interne par Oracle) sera la partition 'temp'. Lors de sa connexion, bob bnficiera d'une session dont les caractristiques sont dfinies par le profil 'profil_bob'. La commande PROFIL affecte entre autres les paramtres suivants :[4]

CONNECT_TIME Temps de connexion autoris (en minutes) IDLE_TIME Dlai d'inactivit autoris (en minutes) LOGICAL_READS_PER_CALL Nombre maximum de blocs mmoire ou disque par tche

2. Les droits : attribution des rles et des privilges associs.

2.1 Privilge Nous venons de voir comment crer un compte utilisateur pour bob. Pour pouvoir crer un compte utilisateur, il faut disposer du privilge CREATE USER. Il est prfrable que cette commande ne soit accessible qu'au DBA. En ce qui concerne notre utilisateur bob, malgr la cration de son compte, il ne peut toujours pas se connecter la base de donnes. Il faut pour cela que le DBA lui accorde le privilge CREATE SESSION. Un privilge est le droit d'excuter un type d'instruction SQL spcifique. Quelques exemples de privilges : ->le droit de se connecter une base de donnes (autrement dit ouvrir une session), ->le droit de crer une table, ->le droit de slectionner des lignes dans une table. Les privilges d'une base de donnes Oracle peuvent tre rpartis en deux catgories distinctes : ->les privilges systme, ->les privilges objets. Les privilges systme autorisent les utilisateurs qui en disposes excuter une action particulire portant sur tout le systme (cration d'espace de tables ou suppression des lignes de n'importe quelle table de la base, etc...). Par opposition, les privilges objets n'accordent que des droits limits un objet de la base. Les privilges objets sont typiquement les droits que peuvent accorder des utilisateurs sur les objets dont ils sont les auteurs alors que les privil- ges systme sont rservs au DBA.[5] L'instruction GRANT est toujours utilise lors de l'attribution d'un privilge. Le grant est syntaxiquement compos de trois parties : GRANT (type de privilge) ON (table/vue) TO (utilisateur(s)) Les types de privilge qui peuvent tre accords sont les suivants : SELECT, INSERT, UPDATE, UPDATE (col1, col2), DELETE, ALTER, INDEX, ALL. Le mot cl ON est suivi du nom de la table ou de la vue sur laquelle sont accords les privilges. TO est suivi du nom du ou des utilisateurs auquel(s) sont accords les privilges. Le mot cl PUBLIC peut tre utilis pour dsigner tous les utilisateurs. On notera que l'instruction GRANT peut tre accompagne de l'option facultative WITH GRANT OPTION qui accorde le droit l'utilisateur de transmettre ces privilges.[6] Ainsi, pour que bob puisse se connecter la base, le DBA devra excuter la commande : GRANT CREATE SESSION TO bob Comme nous l'avons soulign en introduction, un utilisateur peut attribuer des droits sur les objets

dont il est l'auteur via la commande GRANT. Afin de faciliter l'attribution d'une srie de privilges plusieurs utilisateurs, le DBA dispose de la commande ROLE. 2.2 Dfinition des rles On ne peut pas dfinir directement de groupe d'utilisateurs sous Oracle, c'est l'attribution de privilges un rle qui permet de faciliter la gestion des privilges pour des groupes d'utilisateurs. Pour accorder des privilges un groupe d'utilisateurs sur des ensembles de vues ou de relations, il faut d'abord les attribuer un rle, puis assigner ce rle au groupe d'utilisateurs en question. Il y a neuf rles prdfinis afin de prserver la compatibilit entre les diffrentes versions d'Oracle. Ces rles peuvent tre modifis pour permettre la cration de nouveaux rles. Voici quatre de ces rles : CONNECT Autorise la connexion une base Oracle. Parmi les privilges associs cette commande on trouve: CREATE TABLE, CREATE VIEW, CREATE SESSION ... RESOURCE Permet, en plus de la cration de table et de vue, l'utilisation de trigger et de procdure (CREATE PROCEDURE, CREATE TRIGGER ...). DBA Ce rle regroupe tous les privilges systme pour la gestion des utilisateurs et de leurs tables. Pour pouvoir crer un rle, l'utilisateur doit avoir le privilge : CREATE ROLE. Typiquement, seul le DBA dispose de ce droit, ce qui est prfrable pour des raisons de scurit. Lorsqu'un rle est cr, son crateur en hrite avec le privilge ADMIN OPTION ce qui lui permet de modifier, supprimer ce rle ou de l'attribuer des utilisateurs.[6] Il est possible, lors de la cration d'un rle, d'en protger l'utilisation par le biais d'un mot de passe dont le contrle se fera soit par Oracle, soit par une application, soit par le systme d'exploitation. Nous n'envisagerons pas ces cas particuliers et nous verrons sur l'exemple suivant comment crer un rle, l'attribuer notre utilisateur bob, puis le lui enlever. CREATE ROLE role_bob; Cration du rle GRANT SELECT ON acteurs TO role_bob; GRANT UPDATE ON acteurs TO role_bob; GRANT SELECT ON films TO role_bob; Attributions des diffrents privilges au rle dfini prcdemment. GRANT role_bob TO bob; Attribution du rle l'utilisateur bob. 2.3 Gestion des privilges Afin de grer et surveiller l'attribution des privilges, le DBA peut utiliser les commandes suivantes :[7] DBA_TAB_GRANTS Tous les droits sont accords sur tous les objets de la base. DBA_USERS Informations sur tous les utilisateurs de la base.

3. Suppression des droits : modification et suppression des rles.

3.1 Suppression des droits par l'utilisateur L'utilisateur ayant accord un privilge sur ses objets un autre utilisateur peut les lui reprendre en utilisant la commande suivante : REVOKE PRIVILEGE ON FROM ; 3.2 Suppression d'un rle Les rles peuvent tre supprims par l'utilisation de la commande DROP. Pour supprimer le rle role_bob attribu prcdemment bob, l'instruction sera : DROP ROLE role_bob; 3.3 Suppression d'un compte utilisateur La suppression d'un compte utilisateur est aussi un moyen de supprimer ses droits d'accs la base de donne. Pour supprimer les droits d'accs de bob la base de donnes ainsi que tous les objets qu'il a crs, on utilise la commande sui- vante : DROP USER bob CASCADE;

4. Conclusion

Du point de vue scurit, la gestion des droits d'accs aux bases de donnes est de loin le principal souci du DBA. Afin de grer au mieux ces droits, il dispose, comme nous venons de le voir, d'un grand nombre de commandes SQL lui permet- tant d'attribuer slectivement des droits aux diffrents utilisateurs et de surveiller les attributions ralises par les utilisateurs eux-mmes. La plupart des SGBD offrent en outre des moyens de gestion des droits d'accs plus conviviaux que le passage par ligne de commande SQL. Oracle propose notamment plusieurs modules pour la gestion des utilisateurs et de leurs privilges (Server Manager, Security Manager).

Vous aimerez peut-être aussi