Rôles et privilèges sont définis pour sécuriser l'accès aux données de la base
Ces concepts sont mis en oeuvre pour protéger les données en accordant (ou retirant) des privilèges a un utilisateur ou un groupe d'utilisateurs
Un rôle est un regroupement de privilèges. Une fois créé il peut être assigné à un utilisateur ou à un autre rôle
Les privilèges sont de deux types
Les privilèges de niveau système
Qui permettent la création, modification, suppression, exécution de groupes d'objets
les privilèges CREATE TABLE, CREATE VIEW, CREATE SEQUENCE par exemple permettent à l'utilisateur qui les a reçu de créer des tables, des vues et des séquences
Les privilèges de niveau objet
Qui permettent les manipulations sur des objets spécifiques
les privilèges SELECT, INSERT, UPDATE, DELETE sur la table SCOTT.EMP par exemple permettent à l'utilisateur qui les a reçu de sélectionner, ajouter, modifier et supprimer des lignes dans la table EMP appartenant à l'utilisateur SCOTT
1. Assigner des privilèges système à un utilisateur
Assigner des privilèges système à un utilisateur
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
Il doit pouvoir se connecter, créer des tables, des vues, des séquences.
Pour lui assigner ces privilèges de niveau système il faut utiliser l'instruction GRANT dont voici la syntaxe
systeme_privilege représente un privilège système (liste en annexe 1) role représente un rôle préalablement créé ALL PRIVILEGES représente tous les privilèges système (à l'exception de SELECT ANY DICTIONARY) user représente le nom de l'utilisateur qui doit bénéficier du privilège PUBLIC assigne le privilège à tous les utilisateurs WITH ADMIN OPTION assigne à l'utilisateur le droit d'assigner, de retirer, de modifier et de supprimer à son tour les privilèges du rôle reçus
Attention avec l'option ALL PRIVILEGES. Celle-ci accorde des droits quasi illimités à l'utilisateur qui en hérite, avec les risques de sécurité que cela implique
Pour que l'utilisateur puisse simplement se connecter à la base, il doit bénéficier du privilège système CREATE SESSION
GRANTCREATESESSIONTO nom_utilisateur ;
Ensuite il faut lui assigner des droits de création de table
GRANTCREATETABLETO nom_utilisateur ;
Puis les droits de création de vues
GRANTCREATEVIEWTO nom_utilisateur ;
Et il en va de même pour tous les autres privilèges qui lui sont assignés.
L'ensemble de ces privilèges peuvent être assignés au sein d'une même commande
object_privilege représente un privilège objet (liste en annexe 2) role représente un rôle préalablement créé ALL PRIVILEGES représente tous les privilèges assignés à l'exécuteur de l'instruction column représente le nom de colonne d'une table schema représente le nom d'un schéma object représente le nom d'un objet du schéma directory_name représente le nom d'une directory JAVA SOURCE représente le nom d'une source Java JAVA RESOURCE représente le nom d'une ressource Java WITH GRANT OPTION assigne à l'utilisateur de droit d'assigner à son tour le privilège reçu à un autre utilisateur
(WITH GRANT OPTION s'applique à un utilisateur ou à PUBLIC, mais pas à un rôle) WITH HIERARCHY OPTION assigne le privilèges aux sous-objets
Pour assigner à l'utilisateur le droit de sélectionner, insérer, modifier et supprimer des lignes dans la table EMP de l'utilisateur SCOTT
GRANTSELECT
,INSERT
,UPDATE
,DELETEON SCOTT.EMP
TO nom_utilisateur ;
Une liste de colonnes peut être indiquée dans l'instruction afin de restreindre davantage les droits sur une table
GRANTUPDATE ( JOB, MGR )
ON SCOTT.EMP
TO nom_utilisateur ;
L'utilisateur peut modifier la table SCOTT.EMP mais uniquement les colonnes JOB et MGR
Pour pouvoir mettre à jour ou supprimer des lignes d'une table, les privilèges UPDATE ET DELETE ne suffisent pas. Le privilège SELECT est nécessaire
Un utilisateur munis des droits DBA ne pourra pas accorder de privilèges sur un objet qui ne lui appartient pas
Principes généraux appliqués aux privilèges
Un utilisateur possède automatiquement tous les privilèges sur un objet qui lui appartient
Un utilisateur ne peut pas donner plus de privilèges qu'il n'en a reçu
s'il n'a pas reçu le privilège avec l'option WITH GRANT OPTION, un utilisateur ne peux pas assigner à son tour ce même privilège
L'instruction GRANT permet d'assigner un ou plusieurs privilèges système ou objet
Cependant, lorsque la liste des privilèges est importante, cette manière de procéder s'avère rapidement fastidieuse et répétitive
Si l'on prend l'exemple d'un utilisateur travaillant au service comptabilité, il doit recevoir un certain nombre de privilèges sur un certain nombre d'objets
Un autre utilisateur du même service à toutes les chances de se voir assigner des privilèges identiques
C'est pourquoi il est souhaitable de pouvoir regrouper des privilèges identiques dans un même ensemble
3. Créer des rôles et leur assigner des privilèges
Cet ensemble s'appelle un rôle et se créé avec l'instruction CREATE ROLE
role représente le nom du rôle NOT IDENTIFIED (défaut) indique qu'aucun mot de passe n'est nécessaire pour activer le rôle IDENTIFIED BY password indique qu'un mot de passe est nécessaire pour activer le rôle IDENTIFIED USING package indique qu'un package va être utilisé pour fixer les droits de l'utilisateur IDENTIFIED EXTERNALLY indique que l'autorisation provient d'une source externe (S.E.) IDENTIFIED GLOBALLY pour un user GLOBAL géré par exemple par Enterprise Directory Service
Lorsque le rôle est créé, il ne contient rien et il faut l'alimenter à l'aide d'instructions GRANT
CREATEROLE comptabilite ;
GRANTSELECT, INSERT, UPDATE, DELETEON CPT.FACTURE TO comptabilite ;
GRANTSELECT, INSERT, UPDATE, DELETEON CPT.LIG_FAC TO comptabilite ;
GRANTSELECT, INSERT, UPDATE, DELETEON CPT.JOURNAL TO comptabilite ;
Une fois le rôle créé, il peut être assigné à un utilisateur ou à un autre rôle
GRANT comptabilite TO nom_utilisateur ;
Exemple d'utilisation d'un package pour l'utilisation d'un rôle
-- CREATION DU ROLE IDENTIFIE PAR LA PROCEDURE createrole test identifiedusing scott.test_check;
-- CREATION DU PACKAGEcreateorreplaceprocedure test_check
authid current_user isBegin-- VERIFICATION DE L'ADRESSE IP DU DEMANDEURFor i in (select sys_context (USERENV, IP_ADDRESS) ip from dual)
LoopIf i.ip != 192.168.12.196 Then-- MAUVAISE IP, SORTIE DE LA PROCEDURE return;
Endif;
-- IP OK, ON ACTIVE LE ROLE
dbms_session.set_role(TEST);
Endloop;
End;
-- CREATION D'UNE TABLE DE TEST createtable sys.test asselect * from dual;
-- ON DONNE LES DROITS AU ROLE grantselecton sys.test to test;
-- ON DONNE LE ROLE A SCOTT grant test to scott;
-- ON DESACTIVE LE ROLE POUR SCOTT CAR SINON IL SERAIT ACTIVE PAR DEFAUT,-- CE QUI NE SERAIT D'AUCUNE UTILITE ALTERUSER scott DEFAULTROLEALLEXCEPT test;
-- CONNEXION SQL> connect scott/tiger
SQL>select * from sys.test;
-- DROITS REFUSES-- SCOTT DEMANDE L'ACTIVATION DU ROLE TEST setrole test;
-- SI L'ADRESSE IP EST RECONNUESQL>select * from sys.test;
D
-
X
SQL> select * from session_role;
ROLE-------- CONNECTRESOURCE
TEST
Trois rôles existent en standard
CONNECT
RESOURCE
DBA
Les privilèges système assignés au rôle CONNECT
SQL> select * from DBA_SYS_PRIVS where grantee='CONNECT' ;
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---CONNECTCREATEVIEW NO
CONNECTCREATETABLE NO
CONNECTALTERSESSION NO
CONNECTCREATECLUSTER NO
CONNECTCREATESESSION NO
CONNECTCREATESYNONYM NO
CONNECTCREATESEQUENCE NO
CONNECTCREATEDATABASELINK NO
8 ligne(s) sélectionnée(s).
Ce rôle permet l'ouverture (CREATE SESSION) et la modification (ALTER SESSION) d'une session
La création de tables, vues, clusters, séquences, synonymes et liens de bases de données
L'option ADMIN OPTION positionnée à NO indique que ces privilèges ne peuvent pas être assignés à un autre utilisateur ou rôle
Les privilèges système assignés au rôle RESOURCE
SQL> select * from DBA_SYS_PRIVS where grantee='RESOURCE' ;
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---RESOURCECREATETYPE NO
RESOURCECREATETABLE NO
RESOURCECREATECLUSTER NO
RESOURCECREATETRIGGER NO
RESOURCECREATE OPERATOR NO
RESOURCECREATESEQUENCE NO
RESOURCECREATE INDEXTYPE NO
RESOURCECREATEPROCEDURE NO
8 ligne(s) sélectionnée(s).
Ce rôle permet de créer des types, tables clusters, opérateurs, séquences, index et procédures
Le rôle RESOURCE accorde un privilège UNLIMITED QUOTA à l'utilisateur est n'est donc à assigner qu'en connaissance de cause
La liste des privilèges assignés au rôle DBA est beaucoup plus longue du fait que ce rôle est octroyé aux utilisateurs ayant des droits d'administration de la base
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
La liste des rôles définis est visible depuis la vue DBA_ROLES
SQL> select * from DBA_ROLES ;
ROLE PASSWORD
------------------------------ --------CONNECT NO
RESOURCE NO
DBA NO
SELECT_CATALOG_ROLE NO
EXECUTE_CATALOG_ROLE NO
DELETE_CATALOG_ROLE NO
EXP_FULL_DATABASE NO
IMP_FULL_DATABASE NO
RECOVERY_CATALOG_OWNER NO
GATHER_SYSTEM_STATISTICS NO
LOGSTDBY_ADMINISTRATOR NO
AQ_ADMINISTRATOR_ROLE NO
AQ_USER_ROLE NO
GLOBAL_AQ_USER_ROLE GLOBAL
OEM_MONITOR NO
HS_ADMIN_ROLE NO
WKUSER NO
WM_ADMIN_ROLE NO
JAVAUSERPRIV NO
JAVAIDPRIV NO
JAVASYSPRIV NO
JAVADEBUGPRIV NO
EJBCLIENT NO
JAVA_ADMIN NO
JAVA_DEPLOY NO
CTXAPP NO
XDBADMIN NO
AUTHENTICATEDUSER NO
OLAP_DBA NO
SALES_HISTORY_ROLE NO
30 ligne(s) sélectionnée(s).
La liste des privilèges système assignés à un rôle s'obtient en interrogeant les vues DBA_SYS_PRIVS et USER_SYS_PRIVS
La liste des rôles assignés à un utilisateur s'obtient via les vues
DBA_ROLE_PRIVS et USER_ROLE_PRIVS
SQL> select * from DBA_ROLE_PRIVS where grantee = 'FD' ;
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
FD DBA NO YES
FD CONNECT NO YES
FD RESOURCE NO YES
FD GATHER_SYSTEM_STATISTICS NO YES
La liste des privilèges objet assignés à un utilisateur s'obtient en interrogeant les vues
DBA_TAB_PRIVS, ALL_TAB_PRIVS et USER_TAB_PRIVS
select * from DBA_TAB_PRIVS where grantee = 'FD' ;
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
FD SYS ALL_DIRECTORIES SYS SELECT NO NO
FD SYS DBA_DIRECTORIES SYS SELECT NO NO
La liste des privilèges objet sur les colonnes de tables assignés à un utilisateur s'obtient en interrogeant les vues
DBA_COL_PRIVS, ALL_COL_PRIVS et USER_COL_PRIVS
La liste des rôles assignés à l'utilisateur au cours de sa session est visible via la vue SESSION_ROLES
SQL> select * from SESSION_ROLES ;
ROLE------------------------------CONNECTRESOURCE
La liste des privilèges assignés à l'utilisateur au cours de sa session est visible via la vue SESSION_PRIVS
Les privilèges assignés à un utilisateur via un rôle ne permettent pas la création de vues, de procédures, de fonctions de packages ni de clés étrangères par l'intermédiaire de code PL/SQL dynamique (DBMS_SQL, execute immediate)
Pour créer ces objets via PL/SQL, l'utilisateur doit avoir reçu directement les privilèges requis via l'instruction GRANT
Les vues SESSION_PRIVS et SESSION_ROLES sont utiles pour vérifier les droits acquis au cours de la session
Les rôles par défaut à la connexion pouvant être enrichis avec l'instruction SET ROLE (ou son équivalent PL/SQL : DBMS_SESSION.SET_ROLE)
Un mot de passe peut être ajouté à un rôle pour pouvoir l'activer avec l'instruction ALTER ROLE
IDENTIFIED permet de définir le système d'identification NOT IDENTIFIED supprime le système d'identification
Cela permet de se prémunir de l'attribution du rôle par un utilisateur non autorisé qui tenterait de se l'attribuer via l'instruction SET ROLE
4. Activer et désactiver un rôle
Un rôle peut être activé ou désactivé pour un utilisateur avec l'instruction ALTER USER
DEFAULT ROLE spécifie les rôles assignés par défaut à la connexion ALL assigne tous les rôles à l'utilisateur ALL EXCEPT assigne tous les rôles à l'utilisateur à l'exception des rôles désignés NONE n'assigne aucun rôle à l'utilisteur
Pour activer un rôle qui ne fait pas partie de ceux par défaut il faut utiliser l'instruction SET ROLE
5. Suppression d'un rôle
Un rôle peut être supprimé en utilisant l'instruction DROP ROLE
DROPROLE nom_role ;
Le rôle spécifié ainsi que tous les privilèges qui lui sont associés sont supprimés de la base et également retiré à tous les utilisateurs qui en bénéficiaient
6. Retirer 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 arguments sont identiques à ceux décrits pour l'instruction GRANT
Pour pouvoir supprimer un privilège, il faut en avoir reçu l'autorisation avec l'option ADMIN OPTION
L'utilisteur disposant du rôle DBA peut révoquer les privilèges CONNECT, RESOURCE, DBA ou tout autre privilège système ou rôle
Retirer des privilèges à un utilisateur ne supprime pas son schéma ni les objets qu'il contient
7. Retirer 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
CASCADE CONSTRAINTS (applicable uniquement pour révoquer des privilèges REFERENCES) supprime toutes les contraintes d'intégrité référentielles définies par l'utilisateur FORCE retire le privilège EXECUTE sur les types objet
Pour pouvoir supprimer un privilège, il faut en avoir reçu l'autorisation avec l'option ADMIN OPTION
L'utilisteur disposant du rôle DBA ne peut pas retirer de privilèges qu'il n'a pas accordé
8. Liste des privilèges système
Privilège système
Description
CLUSTERS
CREATE CLUSTER
Création de clusters dans le schéma
CREATE ANY CLUSTER
Création de clusters dans n'importe quel schéma
ALTER ANY CLUSTER
Modification de clusters dans n'importe quel schéma
DROP ANY CLUSTER
Suppression de clusters dans n'importe quel schéma
CONTEXTS
CREATE ANY CONTEXT
Créations de tous context
DROP ANY CONTEXT
Suppression de tous context
DATABASE
ALTER DATABASE
Modification de la base
ALTER SYSTEM
Autorise l'instruction ALTER SYSTEM
AUDIT SYSTEM
Autorise les instructions AUDIT sql_statements
DATABASE LINKS:
CREATE DATABASE LINK
Création de liens de base de données dans le schéma
CREATE PUBLIC DATABASE LINK
Création de liens de base de données pour le groupe PUBLIC
DROP PUBLIC DATABASE LINK
Suppression de liens de base de données pour le groupe PUBLIC
DEBUGGING
DEBUG CONNECT SESSION
Connexion dans la session en cours au débugger utilisant le protocol Java Debug Wire Protocol (JDWP)
DEBUG ANY PROCEDURE
Deboguage de tout code PL/SQL ou Java dans n'importe quel objet de la base
DIMENSIONS
CREATE DIMENSION
Création de dimentions dans le schéma
CREATE ANY DIMENSION
Création de dimentions dans n'importe quel schéma
ALTER ANY DIMENSION
Modification de dimentions dans n'importe quel schéma
DROP ANY DIMENSION
Suppression de dimentions dans n'importe quel schéma
DIRECTORIES
CREATE ANY DIRECTORY
Création d'objets DIRECTORY
DROP ANY DIRECTORY
Suppression d'objets DIRECTORY
INDEXTYPES
CREATE INDEXTYPE
Création d'indextype dans le schéma
CREATE ANY INDEXTYPE
Création d'indextype dans n'importe quel schéma
ALTER ANY INDEXTYPE
Modification d'indextype dans n'importe quel schéma
DROP ANY INDEXTYPE
Suppression d'indextype dans n'importe quel schéma
EXECUTE ANY INDEXTYPE
Reférence un indextype dans n'importe quel schéma
INDEXS
CREATE ANY INDEX
Création d'index dans n'importe quel schéma
ALTER ANY INDEX
Modification d'index dans n'importe quel schéma
DROP ANY INDEX
Suppression d'index dans n'importe quel schéma
QUERY REWRITE
Autorise la réécriture via une vue matérialisée dans le schéma
GLOBAL QUERY REWRITE
Autorise la réécriture via une vue matérialisée dans n'importe quel schéma
LIBRARIES
CREATE LIBRARY
Création de librairies de fonctions/procédures externes dans le schéma
CREATE ANY LIBRARY
Création de librairies de fonctions/procédures externes dans n'importe quel schéma
DROP ANY LIBRARY
Suppression de librairies de fonctions/procédures externes dans n'importe quel schéma
MATERIALIZED VIEWS
CREATE MATERIALIZED VIEW
Création de vues matérialisées dans le schéma
CREATE ANY MATERIALIZED VIEW
Création de vues matérialisées dans n'importe quel schéma
ALTER ANY MATERIALIZED VIEW
Modification de vues matérialisées dans n'importe quel schéma
DROP ANY MATERIALIZED VIEW
Suppression de vues matérialisées dans n'importe quel schéma
QUERY REWRITE
Autorise la réécriture via une vue matérialisée dans le schéma
GLOBAL QUERY REWRITE
Autorise la réécriture via une vue matérialisée dans n'importe quel schéma
ON COMMIT REFRESH
Création de vues matérialisées de type refresh-on-commit sur n'importe quelle table
FLASHBACK ANY TABLE
Autorise une requête FlashBack sur n'importe quelle table, vue ou vue matérialisée dans n'importe quel schéma
OPERATORS
CREATE OPERATOR
Création d'un opérateur dans le schéma
CREATE ANY OPERATOR
Création d'un opérateur dans n'importe quel schéma
DROP ANY OPERATOR
Suppression d'un opérateur dans n'importe quel schéma
EXECUTE ANY OPERATOR
Référence un opérateur dans n'importe quel schéma
OUTLINES
CREATE ANY OUTLINE
Création d' outlines publics
ALTER ANY OUTLINE
Modification d' outlines publics
DROP ANY OUTLINE
Suppression d' outlines publics
PROCEDURES
CREATE PROCEDURE
Création de fonctions, procédures et packages dans le schéma
CREATE ANY PROCEDURE
Création de fonctions, procédures et packages dans n'importe quel schéma
ALTER ANY PROCEDURE
Modification de fonctions, procédures et packages dans n'importe quel schéma
DROP ANY PROCEDURE
Suppression de fonctions, procédures et packages dans n'importe quel schéma
EXECUTE ANY PROCEDURE
Exécution de fonctions, procédures et package de n'importe quel schéma
PROFILS
CREATE PROFILE
Création de profils
ALTER PROFILE
Modification de profils
DROP PROFILE
Suppression de profils
ROLES
CREATE ROLE
Création de rôles
ALTER ANY ROLE
Modification de n'importe quel rôle
DROP ANY ROLE
Suppression de n'importe quel rôle
GRANT ANY ROLE
Assignation de n'importe quel rôle
ROLLBACK SEGMENTS
CREATE ROLLBACK SEGMENT
Création de segments de rollback
ALTER ROLLBACK SEGMENT
Modification de segments de rollback
DROP ROLLBACK SEGMENT
Suppression de segments de rollback
SEQUENCES
CREATE SEQUENCE
Création de séquences dans le schéma
CREATE ANY SEQUENCE
Création de séquences dans n'importe quel schéma
ALTER ANY SEQUENCE
Modification de n'importe quelle séquence
DROP ANY SEQUENCE
Suppression de séquences dans n'importe quel schéma
SELECT ANY SEQUENCE
Interrogation de séquences dans n'importe quel schéma
SESSIONS
CREATE SESSION
Connexion à la base
ALTER RESOURCE COST
Application de coûts pour les ressources de la session
ALTER SESSION
Permet l'instruction ALTER SESSION
RESTRICTED SESSION
Connexion restreinte à l'instance
SYNONYMS
CREATE SYNONYM
Création de synonymes dans le schéma
CREATE ANY SYNONYM
Création de synonymes dans n'importe quel schéma
CREATE PUBLIC SYNONYM
Création de synonymes publics
DROP ANY SYNONYM
Suppression de synonymes dans le schéma
DROP PUBLIC SYNONYM
Suppression de synonymes publics
TABLES
CREATE TABLE
Création de tables dans le schéma
CREATE ANY TABLE
Création de tables dans n'importe quel schéma
ALTER ANY TABLE
Modification de tables ou vues dans n'importe quel schéma
BACKUP ANY TABLE
Autorise l'utilisation de l'outil Export
DELETE ANY TABLE
Suppression de lignes des tables de n'importe quel schéma
DROP ANY TABLE
Suppression ou troncature de tables dans n'importe quel schéma
INSERT ANY TABLE
Insertion de lignes dans les tables de n'importe quel schéma
LOCK ANY TABLE
Vérouillage des tables ou vues de n'importe quel schéma
SELECT ANY TABLE
Interrogation des tables, vues ou vues matérialisées de n'importe quel schéma
FLASHBACK ANY TABLE
Autorise les requêtes FlashBack sur n'importe quelle table de n'importe quel schéma
UPDATE ANY TABLE
Mise à jour de lignes dans les tables de n'importe quel schéma
TABLESPACES
CREATE TABLESPACE
Création de tablespace
ALTER TABLESPACE
Modification de tablespace
DROP TABLESPACE
Suppression de tablespace
MANAGE TABLESPACE
Autorise la mise en ligne/hors ligne des tablespace
UNLIMITED TABLESPACE
Quota illimité sur le tablespace
TRIGGERS
CREATE TRIGGER
Création de déclencheurs dans le schéma
CREATE ANY TRIGGER
Création de déclencheurs dans n'importe quel schéma
ALTER ANY TRIGGER
Activation, désactivation, compilation de déclencheurs dans n'importe quel schéma
DROP ANY TRIGGER
Suppression de déclencheurs dans n'importe quel schéma
ADMINISTER DATABASE TRIGGER
Création de déclencheurs de base de données
TYPES
CREATE TYPE
Création d'objets et de corps d'objets dans le schéma
CREATE ANY TYPE
Création d'objets et de corps d'objets dans n'importe quel schéma
ALTER ANY TYPE
Modification d'objets et de corps d'objets dans n'importe quel schéma
DROP ANY TYPE
Suppression d'objets et de corps d'objets dans n'importe quel schéma
EXECUTE ANY TYPE
Utilisation d'objets et de corps d'objets dans n'importe quel schéma
UNDER ANY TYPE
Création de sous-types sous des types non finaux
VIEWS
CREATE VIEW
Création de vues dans le schéma
CREATE ANY VIEW
Création de vues dans n'importe quel schéma
DROP ANY VIEW
Suppression de vues dans n'importe quel schéma
UNDER ANY VIEW
Création de sous-vues sous n'importe quelle vue objet
Autres
ANALYZE ANY
Analyse de tables, clusters et index dans n'importe quel schéma
AUDIT ANY
Audit de n'importe quel objet de n'importe quel schéma
COMMENT ANY TABLE
Pose de commentaires sur les tables et vues de n'importe quel schéma
FORCE ANY TRANSACTION
Force le commit ou rollback de n'importe quelle transaction distibuée douteuse
FORCE TRANSACTION
Force le commit ou rollback de n'importe quelle transaction distibuée douteuse
GRANT ANY OBJECT PRIVILEGE
Assigne n'importe quel privilège objet
GRANT ANY PRIVILEGE
Assigne n'importe quel privilège système
RESUMABLE
Active l'allocation d'espace pour les instructions résumables
SELECT ANY DICTIONARY
Interrogation de n'importe quel objet dans le dictionnaire du schéma SYS
SYSDBA
Autorise les opérations STRTUP et SHUTDOWN
ALTER DATABASE: open, mount, back up, ou changement du jeu de caractères
CREATE DATABASE
ARCHIVELOG et RECOVERY
CREATE SPFILE
Inclue le privilège RESTRICTED SESSION
SYSOPER
Autorise les opérations STARTUP et SHUTDOWN
ALTER DATABASE OPEN | MOUNT | BACKUP
ARCHIVELOG et RECOVERY
CREATE SPFILE
Inclue le privilège RESTRICTED SESSION
9. Liste des privilèges objet
Privilège objet
Description
TABLES
ALTER
Modifier la définition d'une table
DELETE
Supprimer des lignes de la table
DEBUG
Accès via un debugger
INDEX
Création d'un index sur la table
INSERT
Insertion de lignes dans la table
REFERENCES
Création d'une contrainte d'intégrité
SELECT
Interrogation d'une table
UPDATE
Mise à jour de la table
VIEWS
DEBUG
Accès via un debugger
DELETE
Suppression de lignes
INSERT
Insertion de lignes
REFERENCES
Définition de contrainte d'intégrité
SELECT
Interrogation de la vue
UNDER
Création d'une sous-vue
UPDATE
Mise à jour de la vue
SEQUENCES
ALTER
Modification de la définition d'une séquence
SELECT
Interrogation d'une séquence
PROCEDURES
DEBUG
Accès via un debugger
EXECUTE
Compilation, exécution d'une procédure, d'une fonction ou d'un package
MATERIALIZED VIEWS
ON COMMIT REFRESH
Création d'une vue matérialisée de type refresh-on-commit sur la table
QUERY REWRITE
Vue matérialisée en query rewrite
SELECT
Interrogation d'une vue matérialisée
DIRECTORIES
READ
Droits de lecture sur le répertoire
WRITE
Droits d'écriture sur le répertoire
LIBRARIES
EXECUTE
Utilisation d'un objet et de ses méthodes
OBJECT TYPES
DEBUG
Accès via un debugger
EXECUTE
Utilisation d'un objet et de ses méthodes
UNDER
Création d'un sous-type
INDEXTYPES
EXECUTE
Utilisation d'un indextype
OPERATORS
EXECUTE
Utilisation d'un opérateur
Le guide Oracle par Orafrance, Helyos et SheikYerbouti
Responsable bénévole de la rubrique Oracle : Vincent Rogier - Contacter par EMail :