UNIVERSITE ABOU BEKR BELKAID – TLEMCEN
FACULTE DES SCIENCES - DEPARTEMENT D’INFORMATIQUE
Architecture et Administration des SGBD
(Master1 RSD 2022-2023)
TP N°4 – Gestion des Droits d’Accés
▪ Gestion des privilèges :
– Accorder un privilège sur un objet : GRANT privilèges ON objet TO bénéficiaire [WITH GRANT OPTION]
– Accorder un privilège système : GRANT privilèges TO bénéficiaire [WITH ADMIN OPTION]
– Retirer un privilège sur un objet : REVOKE privilèges ON objet FROM bénéficiaire
– Retirer un privilège système : REVOKE privilèges FROM bénéficiaire
▪ Gestion des rôles :
– Création d’un rôle : CREATE ROLE rôle [NOT IDENTIFIED| IDENTIFIED BY Password | EXTERNALLY]
• NOT IDENTIFIED : permet de créer un rôle sans mot de passe
• Password : mot de passe assigné au rôle
• EXTERNALLY : mot de passe est contrôlé au niveau de l'OS
– Modification d’un rôle : ALTER ROLE rôle [NOT IDENTIFIED| IDENTIFIED BY password | EXTERNALLY]
– Suppression d’un rôle : DROP ROLE rôle
– Affectation des privilèges aux rôles : GRANT privilèges TO rôle
– Affectation d'un rôle à un utilisateur : GRANT rôle TO user [WITH ADMIN OPTION]
▪ Gestion des profils :
– Création d’un profil : CREATE PROFILE nom_profil LIMIT { ParamètreRessource | ParamètreMotdePasse } [
ParamètreRessource | ParamètreMotdePasse ]
ParamètreRessource : {{SESSIONS_PER_USER|CPU_PER_SESSION|CPU_PER_CALL|CONNECT_TIME|
IDLE_TIME|LOGICAL_READS_PER_SESSION|LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT}{entier |
UNLIMITED | DEFAULT } | PRIVATE_SGA {entier[K|M] | UNLIMITED | DEFAULT}}
ParamètreMotdePasse:{ FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME
| PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME } { expression |
UNLIMITED | DEFAULT } }
Les options principales sont les suivantes :
• SESSIONS_PER_USER : nombre de sessions concurrentes autorisées.
• CPU_PER_SESSION : temps CPU maximal pour une session en centièmes de secondes.
• CPU_PER_CALL : temps CPU autorisé pour un appel noyau en centièmes de secondes.
• CONNECT_TIME : temps total autorisé pour une session en minutes.
• IDLE_TIME : temps d’inactivité autorisé, en minutes, au sein d’une même session.
• PRIVATE_SGA : espace mémoire privé alloué dans la SGA (System Global Area).
• FAILED_LOGIN_ATTEMPTS : nombre de tentatives de connexion avant de bloquer l’utilisateur.
• PASSWORD_LIFE_TIME : nombre de jours de validité du mot de passe (il expire sil n’est pas changé
au cours de cette période).
• PASSWORD_REUSE_TIME : nombre de jours avant que le mot de passe puisse être utilisé à
nouveau.
• PASSWORD_REUSE_MAX : nombre de modifications de mot de passe avant de pouvoir réutiliser
le mot de passe courant.
• PASSWORD_LOCK_TIME : nombre de jours d’interdiction d’accès à un compte après que le nombre
de tentatives de connexions a été atteint.
• PASSWORD_GRACE_TIME : nombre de jours d’une période de grâce qui prolonge l’utilisation du
mot de passe avant son changement (un message d’avertissement s’affiche lors des connexions),
après cette période le mot de passe expire.
– Assignation d’un profil à un utilisateur :
• A la création d'un utilisateur : CREATE USER utilis IDENTIFIED BY password PROFILE prof
• A la modification d'un utilisateur : ALTER USER utilis PROFILE prof
– Modification d’un profil : ALTER PROFILE nom_profil LIMIT [ressource { integer | UNLIMITED | DEFAULT}]
– Suppression d’un profil : DROP PROFILE nom_profil [CASCADE]
▪ Gestion des utilisateurs :
– Création d’un utilisateur :
CREATE USER utilisateur
IDENTIFIED { BY password | EXTERNALLY }
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QU0TA { integer | UNLIMITED } ON tablespace ] ...
[ PROFILE profil ]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK | UNLOCK}]
• Externally : utilisateur authentifié par l'OS
• Default Tablespace : Espace disque de travail par défaut, sinon le tablespace SYSTEM est pris
par défaut (Tablespace de données).
• Temporary Tablespace : Espace disque temporaire par défaut, sinon le tablespace SYSTEM est
pris par défaut (spécifique aux opérations de tri).
• Quota : Définit l’espace maximum alloué à l’utilisateur pour chaque tablespace
• Profile : Nom du profil de l’utilisateur associé (Sinon le profil DEFAULT est affecté)
• Password Expire : Forcer le changement de mot de passe à la prochaine connexion
• Account {Lock | Unlock} : Verrouiller, déverrouiller le compte d’un utilisateur Oracle
– Modification d’un utilisateur : ALTER USER utilisateur IDENTIFIED …….
– Suppression d’un utilisateur : DROP USER utilisateur [ CASCADE ]
Questions :
1. Se connecter à la base de données du TP2 à l’aide du compte crée COMM.
2. Créer un nouveau compte (User : « INFO22 », Password : « DBA22 ») en lui affectant l’espace de stockage
« USERS », et comme espace temporaire « TEMP », permettant de créer des objets sans dépasser 10 Mo dans
l’espace « USERS ».
3. Connectez-vous à l’aide de « INFO22 ». Que remarquez-vous ?
4. Donner le droit de création d’une session pour cet utilisateur (CREATE SESSION) avec le droit de le transmettre
et reconnecter vous.
5. Donner les privilèges de création de tables et d’utilisateurs à « INFO22 ».
6. Créez l’utilisateur « CHEF_SERVICE » avec le mot de passe « CS2022 », les objets de « CHEF_SERVICE » seront
créés dans l’espace « USERS » et son espace temporaire est celui de la BDD.
7. Donner les droits de connexion à « CHEF_SERVICE ».
8. Donner tous les privilèges pour « INFO22 ».
9. Connectez-vous par «CHEF_SERVICE» et exécutez la requête suivante «Q1 : Select * from COMM.Fournisseur».
Pourquoi ça ne marche pas ?
10. Donner le droit de lecture de la table « Fournisseur » au « CHEF_SERVICE ». Connectez-vous à l’aide de cet
utilisateur et exécutez la requête Q1 maintenant.
11. Donner les droits de mise à jour à « CHEF_SERVICE » pour la table « Produit » avec le droit de les transmettre.
Essayer de faire une modification.
12. Enlever le privilège de suppression précédemment accordé.
13. Vérifier que le privilège a bien été supprimé. Reconnecter vous avec « INFO22 ».
14. « CHEF_SERVICE » a oublié son mot de passe, attribuer le mot de passe « SSS » avec l’obligation de le modifier
à la prochaine connexion.
15. Créer le rôle : « COMMERCIAL » qui peut consulter les tables « Produit » et « Fournisseur » et peut modifier la
table « Commande ».
16. Assigner ce rôle à « CHEF_SERVICE ». Vérifier que les autorisations assignées au rôle « COMMERCIAL » ont
été bien transférées à l’utilisateur « CHEF_SERVICE ».
17. Lister tous les rôles de la base.
18. Créer un profil « ADMIN_PROFIL » qui est caractérisé par : 10 sessions simultanés autorises, Un appel système
ne peut pas consommer plus de 20 secondes de CPU, Chaque session ne peut excéder 45 minutes, Un appel
système ne peut lire plus de 800 blocs de données en mémoire et sur le disque, chaque session ne peut allouer
plus de 32 ko de mémoire en SGA, Pour chaque session, 15 minutes d’inactivité maximum sont autorisés, 5
tentatives de connexion avant blocage du compte, Le mot de passe est valable pendant 60 jours et il faudra
attendre 15 jours avant qu’il puisse être utilisé à nouveau, 1 seul jour d’interdiction d’accès après que les 5
tentatives de connexion ont été atteintes, La période de grâce qui prolonge l’utilisation du mot de passe avant
son changement est de 5 jours.
19. Affecter ce profil à l’utilisateur « INFO22 ».
20. A partir du dictionnaire de données afficher les informations sur « INFO22 » (Colonnes utiles account_status,
default_tablespace et temporary_tablespace).
21. Afficher les informations sur tous les quotas de l’utilisateur « CHEF_SERVICE ».
22. Donner la commande pour supprimer la session en cours.
Mr MATALLAH H