Академический Документы
Профессиональный Документы
Культура Документы
Les termes suivants nous aiderons à mieux comprendre l’administration des utilisateurs de
base de données:
Pour pouvoir accéder aux données, on doit se connecter via un compte utilisateur qui aura certains
privilèges et une certaine visibilité de la base de données. A chaque utilisateur de la base est associé un
compte unique.
Chaque compte utilisateur comporte les éléments importants suivants :
• Un nom utilisateur unique: Les noms utilisateur ne peuvent pas dépasser 30 caractères, ne
doivent pas contenir de caractères spéciaux et doivent commencer par une lettre.
• Une méthode d'authentification : La méthode la plus courante est l'authentification par mot de
passe, mais Oracle Database 11g prend en charge des méthodes d'authentification globales et
externes (notamment par biométrie, par certificat et par système tiers).
• Un tablespace par défaut : Il s'agit de l'emplacement dans lequel l'utilisateur crée des objets s'il
n'indique pas un autre tablespace. Notez que le fait qu'un utilisateur dispose d'un tablespace par
défaut n'implique pas qu'il bénéficie du privilège permettant de créer des objets dans ce
tablespace, ni qu'il dispose d'un quota d'espace dans ce tablespace. En effet, les privilèges et les
quotas sont accordés séparément.
• Un tablespace temporaire : Il s'agit de l'emplacement dans lequel l'instance crée les objets
temporaires (tris ou tables) pour le compte de l'utilisateur. Aucun quota n'est appliqué aux
tablespaces temporaires.
• Un profil utilisateur: sera détailler par la suite dans ce cours.
• Un statut de compte: fait référence aux statut du compte de l’utilisateur est-ce-qu’il est
verrouillé ou non, expiré ou non etc.
Schéma de base de données
Ces 2 utilisateurs ont par défaut le rôle DBA, ce qui veut dire qu'ils ont accès à tous les objets
de tous les autres utilisateurs de la base, et qu'ils ont le droit d'exécuter certaines
commandes d'exploitation et d'administration.
Tout utilisateur qui dispose du privilège SYSDBA peut se connecter au compte SYS à l'aide de
la clause AS SYSDBA. Seuls les utilisateurs bénéficiant du privilège SYSDBA, SYSOPER ou
SYSASM sont autorisés à démarrer et arrêter les instances
• Le nom de l’utilisateur
• Le mécanisme d’authentification
• Tablespace: Identifiez les tablespaces dans lesquels l’utilisateur stockera
ses objets
• Quotas: décider des quotas pour chaque tablespace
La requête suivante peut être exécutée dans n’importe quel outils tels que SQL*PLUS,
SQLDevelopper ou en ligne de commande :
CREATE USER YASSER IDENTIFIED BY
MESMOUDI2020
DEFAULT TABLESPACE data01
TEMPORARY TABLESPACE temp
QUOTA 15M on data01
PASSWORD EXPIRE
ACCOUNT UNLOK;
• IDENTIFIED:Cette clause indique la manière dont l'utilisateur sera identifié ( par l'OS ou par Oracle).
• DEFAULT TABLESPACE: Indique le Tablespace dans lequel les objets de l'utilisateur seront crées.
• TEMPORARY TABLESPACE: Indique le Tablespace dans lequel les tris par exemple seront effectués pour
cet utilisateur.
• QUOTA: Limite d'espace attribué à l'utilisateur sur un Tablespace.
• PASSWORD EXPIRE: Permet de forcer un changement de mot de passe à la première connexion de
l'utilisateur.
• ACCOUNT LOCK / UNLOCK: Permet de verrouiller ou déverrouiller le compte utilisateur.
Création via OEM
Une fois connecté sur OEM, rendez-vous sur l’onglet serveur. Cliquez sur le lien
Utilisateurs puis sur le bouton créer. L’interface de création d’utilisateur ci-dessous
s’affiche et assiste l’administrateur en lui demandant d’introduire les différentes
informations correspondantes:
N.B: vous pouvez effectuer l’affectation des rôles et des privilèges ainsi que
l’application des quotas aux tablespaces durant la création de l’utilisateur en
interrogeant les onglets correspondants.
Authentification des utilisateurs
Pour pouvoir consulter les informations sur les utilisateurs, il suffit d’interroger
les vues: DBA_USERS et DBA_TS_QUOTAS
• Exemple:
Lorsqu'un utilisateur est créé avec l'instruction CREATE USER, il ne dispose encore d'aucun droit
car aucun privilège ne lui a encore été assigné. Il ne peut même pas se connecter à la base.
Il faut donc lui assigner les privilèges nécessaires.
Pour lui assigner ces privilèges de niveau système il faut utiliser l'instruction GRANT dont voici la
syntaxe:
GRANT
UPDATE (JOB, DATE_ENTREE),
ON YASSER.EMPLOYEE
TO MOHAMED;
L'utilisateur MOHAMED peut modifier la table EMPLOYEE mais uniquement
les colonnes JOB et DATE_ENTREE.
Révoquer des privilèges système
Les privilèges système qui ont été assignés à des utilisateurs ou à des rôles peuvent être retirés
avec l'instruction REVOKE:
Les utilisateurs disposant de l'option ADMIN OPTION pour un privilège système peuvent révoquer
ce privilège pour tout autre utilisateur de la base de données.
L'utilisateur disposant du rôle DBA peut révoquer les privilèges CONNECT, RESOURCE, DBA ou tout
autre privilège système ou rôle.
N.B: Retirer des privilèges à un utilisateur ne supprime pas son schéma ni les objets qu'il
contient
Exemples
Cette image illustre le scénario suivant:
1. Le DBA octroie le privilège système CREATE TABLE à Joe avec l'option ADMIN OPTION
2. Joe crée une table.
3. Joe accorde le privilège système CREATE TABLE à Emily.
4. Emily crée une table.
5. Le DBA révoque le privilège système CREATE TABLE pour Joe.
Résultat: La table créée par Joe existe toujours, mais Joe ne peut plus en créer d'autres. La table
d'Emily existe toujours et Emily conserve le privilège système CREATE TABLE.
Révoquer des privilèges objet
Les privilèges objet qui ont été assignés à des utilisateurs ou à des rôles peuvent être retirés
avec l'instruction REVOKE :
Pour pouvoir supprimer un privilège, il faut en avoir reçu l'autorisation avec l'option ADMIN
OPTION.
L'utilisateur disposant du rôle DBA ne peut pas retirer de privilèges qu'il n'a pas accordé
Exemples
Cette image illustre le scénario suivant:
1. Joe reçoit le privilège objet SELECT sur la table EMPLOYEES, avec l'option GRANT OPTION.
2. Joe accorde à Emily le privilège SELECT sur la table EMPLOYEES.
3. Le privilège SELECT de Joe est révoqué.
Pour pouvoir consulter les informations sur les privilèges système, il suffit
d’interroger des vues comme : DBA_SYS_PRIVS et SESSION_PRIVS
Pour pouvoir consulter les informations sur les privilèges objet, il suffit
d’interroger des vues comme : DBA_TAB_PRIVS, USER_TAB_PRIVS et
DBA_COL_PRIVS
• Exemple:
Select * from DBA_SYS_PRIVS;
Select * from SESSION_PRIVS;
Select * from DBA_TAB_PRIVS;
Select * from USER_TAB_PRIVS;
select owner, table_name, column_name from DBA_COL_PRIVS;
Si l'on prend l'exemple de plusieurs utilisateurs travaillant au même service, ils doivent recevoir
un certain nombre de privilèges sur un certain nombre d'objets. Le DBA doit leur attribuer des
privilèges identiques. C'est pourquoi il est souhaitable de pouvoir regrouper des privilèges
identiques dans un même ensemble. Cet ensemble s'appelle un rôle et se créé avec
l'instruction CREATE ROLE
1. Lorsque le rôle est créé, il ne contient rien et il faut l'alimenter à l'aide d'instructions
GRANT:
CREATE ROLE magasin;
• RESOURCE: Ce rôle permet de créer des types, tables, clusters, opérateurs, séquences,
index et des procédures.
N.B: Le rôle RESOURCE accorde un privilège UNLIMITED QUOTA à l'utilisateur est n'est
donc à assigner qu'en connaissance de cause
• DBA: La liste des privilèges assignés au rôle DBA est trop longue du fait que ce rôle est
octroyé aux utilisateurs ayant des droits d'administration de la base. On peut la consulter via
la commande: select * from DBA_SYS_PRIVS where grantee='DBA‘
D'une façon générale, il est fortement déconseillé d'utiliser ces rôles standards car ils
accordent trop de droits aux utilisateurs
Informations sur les rôles
La liste des rôles assignés à un utilisateur s'obtient via les vues: DBA_ROLE_PRIVS,
USER_ROLE_PRIVS
La liste des rôles assignés à l'utilisateur au cours de sa session est visible via la
vue SESSION_ROLES
• Exemple:
• Les privilèges sont accordés aux rôles (et révoqués) comme si le rôle était un
utilisateur.
• Un rôle peut être constitué de privilèges système et objet.
• Un rôle peut être activé ou désactivé pour chaque utilisateur auquel il est accordé.
• Les rôles sont accordés aux utilisateurs ou à d'autres rôles (et révoqués de la même
manière) comme s'il s'agissait de privilèges système
• L'activation d'un rôle peut nécessiter un mot de passe
• Les rôles n'appartiennent à personne et ne résident dans aucun schéma