Bonjour,

Je pensais comprendre l'usage des grant (je travaillais avec oracle 7.3.4 auparavant), mais le cas suivant en 10g me laisse perplexe :
j'ai créé une table sous le user OPS$OPE :

SQL> CREATE TABLE SSR_CODE
2 (
3 CODE VARCHAR2(4) NOT NULL
4 )
5 ;

Table created.

SQL> CREATE UNIQUE INDEX SSR_CODE_I1
2 ON SSR_CODE
3 (
4 CODE ASC
5 )
6 ;

Index created.


Je donne des droits en lecture et écriture pour le user USER0

SQL> grant select,insert,update,delete on SSR_CODE to USER0;

Grant succeeded.


et seulement des droits en lecture pour USER39 :

SQL> grant select on SSR_CODE to USER39;

Grant succeeded.


Je crée un synonym pour tout le monde :

SQL> create or replace public synonym SSR_CODE for ops$ope.SSR_CODE;

Synonym created.


Cependant, en me connectant en tant que USER39, j'ai aussi des droits en écriture et peut modifier des records. Alors à quoi les "grant" ont ils servi ?

Si quelqu'un a des éclaircissements ...
Merci