Privilèges d'accès aux objets

Droits d’accès aux objets

Implicitement le créateur d’un objet (TABLE, VUE , INDEX, etc.) est son propriétaire, et possède tous les droits dessus : consultation, mises à jour, mais aussi suppression complète.
GRANT et REVOKE permettent respectivement de donner ou de supprimer les droits explicites d’accès en lecture ou mise à jour à un utilisateur particulier, pour un objet particulier.

C'est en général le propriétaire de l'objet peut donner des droits d'accès à un autrer utilisateur.

exemples:

SQL> GRANT SELECT ON TAB_CLIENTS TO MARTIN
SQL> GRANT UPDATE, INSERT ON TAB_CLIENTS TO DUPONT

par défaut un DBA ne peut pas donner des droits d'accès à un objet qui ne lui appartient pas. Le propriétaire doit lui céder les drois avec un grant option (!?) :
SQL> connect system/xxxx
Connected.
SQL>grant select on intranet.annuaire to scott;
ERROR at line 1: ORA-01031: insufficient privileges

Le type de privilège dépend évidemment de l'objet sur lequel il s'applique. Ceci est résumé dans le tableau suivant :

Le privilege ...
s'applique sur une...
Table Vue Sequence Procedure
ALTER
DELETE
EXECUTE
INDEX
INSERT
REFERENCES (1)
SELECT
UPDATE

(1) possibilité de créer une clé étrangère sur la table
Il est possible de donner un privilège avec le droit de transférer ce privilège à d'autres (à utiliser avec parcimonie). Ceci se fait avec l'otion 'GRANT' du GRANT (!) :

GRANT SELECT ON TAB_CLIENTS TO DUPONT WITH GRANT OPTION
(on suppose que TAB_CLIENTS est un synonyme public visible par tout le monde). Dupont, même s'il n'est pas propriétaire pourra alors à son tour faire :

GRANT SELECT ON TAB_CLIENTS TO MARTIN

une erreur très répandue consiste à référencer un objet (dont on n'est pas proprétaire et sur lequel il n'y pas de synonyme) par son nom, SANS le préfixer par le nom du propriétaire. exemple : SELECT * from EMP au lieu de SELECT * FROM SCOTT.EMP ceci donne une erreur d'accès du type 'TABLE OR VIEW DOESN'T EXISTS' (?!) même si on a les droits de lecture...


(c) 2002- 2006 Didier Deléglise


modifié
le 20/11/2006

Ecrire a DD
ecris
moi


les forums techniques Oracle

mon BLOG Oracle,
en Francais
connaitre DD
l'autre vie
de DD

mon CV

trucs
et astuces

JOBs Oracle
du jour
Homepage "Tout sur Oracle"
Mon site :
Tout sur Oracle (et le web)
Copyright (C) 2002
Utilisation de ces documents