Bonjour,
J'ai un problème avec les privilèges.
J'ai 2 users :
-user1 avec la table table1
-user2 doit veut pouvoir faire un select sur table1 de user1.
Pour cela, je pensais utiliser un seul role pour les 2 users.
Voici les commandes que je saisie (j'ai simplifiée les create user) :
Si apres cela, je me connecte a user2, puis je fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE USER user1; create table table1 (a int); create role ROLE1; GRANT CREATE TABLE,ALTER SESSION,CREATE SESSION TO ROLE1; create or replace directory datadir as 'monrep'; grant read,write on directory datadir to ROLE1; GRANT ROLE1 to user1; GRANT SELECT, INSERT, UPDATE, DELETE ON user1.table1 TO ROLE1; CREATE USER user2; GRANT ROLE1 to user2;
j'ai le message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from table1
pour la table table1.ORA-00942: Table ou vue inexistante
Si apres tout cela, je refait :
Alors la c'est bon, l'utilisateur user2 peut faire une requette sur user1.table1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 GRANT SELECT, INSERT, UPDATE, DELETE ON user1.table1 TO ROLE1;
Est-ce qu'il y a une explication a ce drole de fonctionnement ?
Il y a peut être un problème entre les privilèges systemes et les privilèges objets, mais je suis débutant en Oracle.
Pour information, je travaille avec Oracle 10 XE.
Partager