Amendis
Oracle 3
M2 Data management. Année 2009/2010
Oracle : Gestion des Droits Utilisateurs et Transactions
1
Dictionnaire de données
Le dictionnaire de données est un ensemble de tables dans lesquelles sont stockées les descriptions des objets de la base. Les tables de ce dictionnaire peuvent être consultées au moyen du langage SQL. Des vues de ces tables permettent à l’utilisateur devoir les objets qui lui appartiennent ou sur lesquels il a des droits. L’administrateur a pour sa part accès à toutes les vues.
Quelques vues et tables du dictionnaire de données : • USER_TABLES : tables et vues créées par l’utilisateur. • USER_CATALOG (ou CAT) : tables et vues sur lesquelles l’utilisateur a des droits à l’exception
• • • • •
des tables et vues du dictionnaire de données.USER_TAB_COLUMNS (ou COLS) : colonne de chaque table ou vue créée par l’utilisateur courant. USER_CONSTRAINTS : dénition des contraintes pour les tables des utilisateurs. USER_CONS_COLUMNS : colonnes qui interviennent dans les dénitions des contraintes. USER_OBJECTS contient des informations sur les objets créés par l’utilisateur. DICT ou DICTIONNARY contient le nom des tables du dictionnaire ainsiqu’un commentaire.
user_objects where object_type = ‘TABLE’ ;
Par exemple, pour savoir quelles sont les tables appartenant à l’utilisateur : select object_name from
Cette liste n’est pas exhaustive. Vous en avez d’autres dans votre poly de cours. D’une manière générale, les vues commençant par USER_ donnent des informations sur les objets que vous avez créés (tables, contraintes, vues,triggers, etc) et sur les privilèges vous concernant. Les vues commençant par ALL_ (ALL_TABLES, ALL_CONSTRAINTS …) concernent les objets sur lesquels vous avez des droits et qui ne vous appartiennent pas forcément. Pour savoir quels sont les attributs de ces vues, eectuer un DESC sur les vues. – Connectez vous (les tables des TPs précédents étant créées). – Achez la liste de vos objets, leurtype, la date de création et la date de dernière modication (vue USER_OBJECTS). – Donnez toutes les informations sur les tables sur lesquelles vous avez des droits. – Donnez la description des attributs de la table SEANCE. – Donnez la liste des contraintes (avec leur statut) créées au cours du TP précédent. – Donnez les informations sur les contraintes de type clé primaire que vous aviez créées aucours de ce TP.
2 Privilèges d’accès à la base de données
Oracle permet à plusieurs utilisateurs de travailler sur la même base de données en toute sécurité. Deux commandes sont à ce titre particulièrement importantes : GRANT et REVOKE et permettent de dénir les droits de chaque utilisateur sur les objets de la base. Tout utilisateur accède à la base à l’aide de son nom utilisateur et de sonmot de passe. C’est le nom utilisateur qui permet de déterminer les droits d’accès aux objets de la base de données. 11 utilisateurs TPINFOxx (où xx désigne le numéro de votre poste) ont été créés par le DBA et sont autorisés à se connecter à la base Oracle. Ils ont aussi les privilèges de créer des objets de schéma de 1
Oracle 3
M2 Data management. Année 2009/2010
base de donnéesutilisateur (tables, vues, contraintes etc). Au cours des TP précédents vous avez travaillé sous un nom d’utilisateur et vous avez donc été en concurrence avec vous-même. Nous allons vérier que le SGBD gère la concurrence d’accès à des objets de la base entre plusieurs utilisateurs diérents. Tout utilisateur qui crée des objets est propriétaire de ces objets (table_name, owner de ALL_tables dans ledictionnaire des données). Le créateur d’un objet peut décider de donner (ou de supprimer) certains droits d’accès à cet objet à tout autre utilisateur de sa connaissance.
2.1 L’ordre GRANT
GRANT privilege ON table/vue TO utilisateur [WITH GRANT OPTION]
Cet ordre permet de donner le privilège concerné sur la table ou la vue à l’utilisateur. Exemple : dess1 a créé la table SEANCE et…