Académique Documents
Professionnel Documents
Culture Documents
Stocker des
informations
Proposition
des SGBD
SGBDR
Oracle
3
Plan
01 02 03 04 05 06
Oracle est une entreprise américaine créée en 1977 par Larry Ellison.
Ses produits phares sont Oracle Database (un système de gestion de base
de données), Oracle Weblogic Server (un serveur d'applications), Oracle E-
Business Suite (un progiciel de gestion intégré) et Oracle Cloud
Infrastructure (une offre de Cloud Computing).
En 2019, Oracle était la deuxième plus grande entreprise de logiciels en
termes de chiffre d'affaires et de capitalisation boursière.
Réf: https://fr.wikipedia.org/wiki/Oracle_(entreprise)
SGBDR Oracle
• Il empêche les accès non autorisés et fournit des solutions efficaces pour la
récupération des données après incident.
Quelques vérsions
Depuis 1977 la société Oracle a offert son SGBD sous différentes versions,
chacune apporte des améliorations à la précédente et offre d’autres
nouvelles fonctionnalités. Les versions les plus récentes et les plus utilisées
sont:
• 8i & 9i: le i fait référence à Internet, depuis la version 8i la société
intègre des outils Internet à son SGBD.
• 10 g & 11g: le g fait référence aux Grid Computing qui est une
architecture qui permet un accès flexible et une allocation dynamique
de ressources tel que les processeurs le stockage les base de donnée
et les applications. Dans ces versions oracle exploite cette
architecture pour rendre son SGBD plus robuste et plus performant.
• 12 c, 18c & 19c: le c fait référence au Cloud Computing qui est une
architecture qui rend l’accès aux ressources telle que les processeurs ,
le stockage les bases de données et les applcations; par des services
accessible via internet. Dans cette version, les base de données
peuvent désormais être accessible en tant que service.
Les éditions
*"Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions" (ISBN-10 : 1590595300, feuilletable en ligne sur Amazon)
Rôles d’un DBA
Lorsqu’un utilisateur est connecté à une machine sur laquelle réside un Serveur
Oracle, deux processus supplémentaire sont invoqués :
• Le processus utilisateur (client): est créé pour chaque programme exécuté par
un utilisateur
• Le processus serveur: est chargé de la communication entre la SGA et le
processus utilisateur.
Une connexion est une voie de communication entre un processus utilisateur et une
instance Oracle Database. Elle est établie à l'aide des mécanismes de communication
interprocessus disponible ( locale et via le réseau)
Une connexion spécifique entre un utilisateur et un serveur Oracle est appelé
une Session. La session démarre lorsque la connexion de l'utilisateur est validée par le
serveur Oracle et se termine lorsqu'il se déconnecte ou lorsqu'une fin de connexion
prématurée se produit.
Structures mémoires d’une base de données
Zone de mémoire partagée
La zone de mémoire Java est utilisée pour l'ensemble du code Java et des données
propres à la session dans la JVM (Java Virtual Machine).
Elle est utilisée de différentes manières, en fonction du mode d'exécution d'Oracle
Database.
La zone de mémoire Streams est utilisée par Oracle Streams exclusivement. Elle
contient les messages en file d'attente tampon et fournit la mémoire nécessaire
aux processus Oracle Streams de capture et d'application des modifications.
La mémoire PGA
La mémoire PGA (Program Global Area) est une zone de mémoire contenant des données et des
informations de contrôle pour un processus serveur. Chaque PGA contient un espace de pile. Dans un
environnement avec serveur dédié, chaque utilisateur qui se connecte à l'instance de base de données
comporte un processus serveur distinct. Pour ce type de connexion, la mémoire PGA contient une
subdivision de mémoire connue sous le nom de zone UGA (User Global Area). La mémoire UGA comprend
les éléments suivants :
Une zone de curseurs pour stocker les informations d'exécution sur les curseurs.
Une zone de mémoire de session utilisateur pour des informations concernant une session.
Des zones de travail SQL pour le traitement des instructions SQL :
Une zone de tri pour les fonctions qui classent les données telles que ORDER BY et GROUP
BY.
Une zone de hachage pour exécuter les jointures de hachage entre les tables.
Une zone avec
Dans un environnement de création d'index plusieurs
serveur partagé, bitmap commune aux data
clients partagent warehouses
un même utilisée
processus pour la
serveur.
création
Dans ce modèle, d'indexUGA
la mémoire bitmap.
est transférée dans la mémoire SGA (dans la zone de mémoire partagée
Une
ou dans la zone dezone de fusion
mémoire LARGEd'index
POOL sibitmap
elle estutilisée pour définir
configurée), de sortelesque
plans d'exécution
la mémoire PGAbasés sur un
contient
index bitmap.
uniquement l'espace de pile.
Structure des processus
Instance
Adresse IP
Port
SID
D'autres processus en arrière-plan sont disponibles pour les
configurations plus avancées (RAC, par exemple). Pour plus
d'informations, consultez la vue V$BGPROCES
Processus DBWn(Database Writer)
Les processus Database Writer écrivent le contenu des tampons dans des
fichiers de données.
Ils sont chargés de transférer sur disque le contenu des tampons modifiés
("dirty") du cache de tampons de la base de données.
Un seul processus Database Writer (DBW0) est suffisant pour la plupart
des systèmes, mais vous pouvez en configurer d'autres pour optimiser les
performances d'écriture dans un système qui modifie les données de
manière intensive.
Processus LGWR(Log Writer)
RECO (Recoverer) est un processus en arrière-plan qui est utilisé dans une
configuration de base de données distribuée pour résoudre
automatiquement les échecs impliquant des transactions distribuées
Le processus RECO d'une instance se connecte automatiquement aux
autres bases de données impliquées dans une transaction distribuée
équivoque. Quand le processus RECO rétablit la connexion entre les
serveurs de base de données concernés, il résout automatiquement les
transactions équivoques et supprime de chaque table des transactions en
attente les lignes correspondant aux transactions équivoques résolues
Processus ARCn(Archiver)
Gestion de l’instance
Structure de gestion
Outre Enterprise Manager, vous pouvez utiliser SQL*Plus et SQL Developer pour
exécuter des instructions SQL. Ces outils vous permettent d'effectuer un grand
nombre d'opérations de gestion de base de données, ainsi que de sélectionner,
d'insérer, de mettre à jour ou de supprimer des données dans la base.
• SQL*Plus est un programme en mode ligne de commande qui permet de:
• Effectuer des opérations de gestion de BD
• Exécuter des instructions SQL et PL/SQL pour interroger une BD
Paramètre Signification
CONTROL_FILES Un ou plusieurs noms de fichier de contrôle
DB_FILES Nombre maximal de fichiers de BD
PROCESSES Nombre maximal de processus utilisateur du système
d’exploitation pouvant se connecter simultanément
DB_BLOCK_SIZE Taille (en octets) d'un bloc de base de données Oracle.
DB_CACHE_SIZE Taille du cache de tampons
PGA_AGGREGATE_TARGET Quantité de mémoire PGA allouée à tous les processus
serveur
SHARED_POOL_SIZE Taille de la zone de mémoire partagée (en octet)
UNDO_MANAGEMENT Mode de gestion du volume d'annulation à utiliser
Exemples
DB_CACHE
LOG_BUFFER
SHARED_POOL_SIZE _SIZE
Ta
Pour avoir les informations sur les différentes paramètres, il suffit d’interroger
la vue du dictionnaire de données V$PARAMETER:
Toutes les interrogations portant sur des dates afficheront donc les dates dans ce
format
1- Entreprise Manager Database Control peut être utilisé pour gérer plusieurs
bases de données simultanément:
• Vrai
• Faux
Une fois l'instance démarrée, on peut procéder au montage de la base qui permet
à Oracle de trouver et lire les fichiers de contrôle afin de connaitre la localisation
des fichiers de données et des fichiers de journalisation.
• ABORT: effectue des tâches minimales avant l'arrêt. Il requiert une opération
de récupération avant le démarrage. Il est utilisé qu'en cas d'urgence, et si
aucun autre mode d'arrêt ne fonctionne.
• IMMEDIATE: est l'option la plus fréquemment utilisée. la base de données
Oracle est fermée proprement et assez rapidement selon les transactions en
cours dans la base.
• TRANSACTIONAL: est un mode d'arrêt utilisé pour éviter des pertes de
données sur des transactions en cours. Il attend la fin de toutes les transactions
en cours en interdisant toute nouvelle transaction. Ce mode d'arrêt peut être
long.
• NORMAL: est le mode d'arrêt par défaut si aucun mode n'est précisé. C'est le
plus long car Oracle attend que l’ensemble des utilisateurs soit déconnecté
pour fermer la base de données.
SHUTDOWN NORMAL
Shutdown Normal est le mode d'arrêt par défaut si aucun mode n'est précisé.
C'est le plus long car Oracle attend que l’ensemble des utilisateurs soit
déconnecté pour fermer la base de données. Ce mode a lieu dans les conditions
suivantes:
Un arrêt en mode IMMEDIATE est le mode d'arrêt le plus utilisé, notamment dans
les scripts, la base de données Oracle est fermée proprement et assez rapidement
selon les transactions en cours dans la base. Ce mode d’arrêt de la base de
données s'accompagne des conditions suivantes:
Le mode d'arrêt Abort est utilisé qu'en cas d'urgence, et si aucun autre mode
d'arrêt ne fonctionne. Ce mode d’arrêt de la base de données s'accompagne des
conditions suivantes :
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
5
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