TP1 Abd
TP1 Abd
TP1 Abd
Objectif : Apprendre à gérer les utilisateurs d’une base de données Oracle (création des utilisateurs,
gestion des rôles et des privilèges …)
Motivation : Un SGBD oracle est un système multi-utilisateur complexe. Il doit alors protéger les
données de l’utilisateur. En contrepartie, Il doit permettre un partage contrôlé des données
utilisateurs. La solution alors est de créer des utilisateurs avec des droits (des privilèges) spécifiques.
NB : ce TP peut être réalisé soit en mode graphique ou bien en utilisant l’invite Sql/plus d’oracle.
Page 1 / 5
TP1 – Administration des bases de données LGLSI 2
3- Connectez vous en utilisant un compte ayant le rôle DBA (utilisez par exemple le user System ou
Sys ayant comme mot de passe celui créé lors de la création de la base de données).
Les utilisateurs Sys et System sont des utilisateurs prédéfinis (créés lors de
l’installation d’oracle).
Sys : un utilisateur ayant le rôle DBA (jouant alors le rôle d’un administrateur et
pouvant ainsi créer des tables, des utilisateurs, insérer des données … ) et possédant
le privilège SYSDBA (permettant de démarrer et d’arrêter la base de données)
System : joue le rôle d’un DBA mais ne possède pas le privilège SYSDBA
2
1
Page 2 / 5
TP1 – Administration des bases de données LGLSI 2
6- Dans le menu affiché, le bouton « SQL Workshop » permet de gérer la BD créée automatiquement
avec Oracle XE.
7- Dans le menu SQL Workshop -> SQL Commands, utiliser la syntaxe ci-dessous afin de créer une table
de test. Une fois créée, il sera possible d’explorer graphiquement la structure, les données, les
contraintes ainsi que diverses propriétés de la table de test dans le menu SQL Workshop -> Objects
Browser :
8- Dans le menu SQL Workshop -> SQL Commands, utiliser la syntaxe ci-dessous afin de créer un nouveau
utilisateur « user_test » :
Vous remarquerez qu’il n’est pas possible de créer un utilisateur. En effet, l’utilisateur « Student » utilisé
pour exécuter la commande « CREATE USER » est celui créé pour l’environnement de travail ; bien qu’il a
le privilège de créer des tables, il ne dispose pas du privilège qui lui permet de créer des utilisateur.
Afin de lui attribuer ce privilège, on devra utiliser un super utilisateur Oracle (sys, system, ou tout autre
utilisateur qui a le privilège d’attribuer des privilèges à des utilisateurs).
Page 3 / 5
TP1 – Administration des bases de données LGLSI 2
B. SQL*plus pour l’administration de la base de données Oracle
1- A partir du menu de démarrage, lancer SQL*plus :
2- Connecter vous avec la commande suivante (en utilisant un utilisateur ayant le rôle DBA) et
pas besoin d’utiliser un mot de passe
SQL> connect sys as sysdba
Enter password:
Connected.
C. Exercice
Dans une société, on dispose de deux services : service DRH et service DAF. Les données du service
DRH sont stockées dans une table « Employe », alors que celles du service DAF sont stockées dans
une table « Facture ».
Le service DRH manipule ses données à travers un utilisateur « user_drh », alors que le service DAF
a un autre utilisateur nommé « user_daf ».
Les utilisateurs du DRH n’ont pas le droit de faire des opérations sur les factures, et vice-versa.
Page 4 / 5
TP1 – Administration des bases de données LGLSI 2
Exécuter l’ensemble des requêtes SQL qui permettent de réaliser les étapes ci-dessous. Vous pouvez
utiliser l’interface d’Oracle XE ou bien les lignes de commande :
a) Créer les deux utilisateurs « user_drh » et « user_daf » et attribuer à chacun un mot de passe.
b) Créer deux rôles « role_drh » et « role_daf » et attribuer à chacun les privilèges de création
de session (CREATE SESSION) et de création de table (CREATE TABLE)
c) Attribuer respectivement les rôles « role_drh » et « role_daf » aux utilisateurs « user_drh »
et « user_daf ».
d) Se connecter avec l’utilisateur « user_drh » et créer la table « Employe ».
Page 5 / 5