Bonjour à tous,
J'ai un problème pour que les privilèges que je donne à un utilisateur soient pris en compte.

Je m'explique
Mon objectif : créer une BDD, puis des utilisateurs, et attribuer des privilèges sur ces tables à ces utilisateurs.

Pour ce faire j'utilise la méthode suivante :
pour faciliter la gestion de ma base de données, je la créer sous un nouvel utilisateur (nommé "oracle"), puis je me connecte avec le compte "oracle" et je créer des utilisateurs afin qu'ils puissent accéder aux tables créées sous le compte "oracle".

Voila en détail les opérations que j'ai effecué :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*création d'un compte oracle auquel je donne les droits dba*/
>create user oracle
>identified by oracle;
>grant dba to oracle;

/*je me connect au compte oracle*/
>connect oracle/oracle

/*création d'une BDD sous ce compte (création de table et insertions de données)*/
>@'mon_chemin\creation.txt'
>@'mon_chemin\insertions.txt'

/*création des tablespaces temporaires et par défaut*/
create tablespace deftab
datafile 'C:\oracle\product\10.2.0\oradata\JereBDD\deftab.dbf' size 10M;

create temporary tablespace
tempfile 'C:\oracle\product\10.2.0\oradata\JereBDD\temptab.dbf' size 10M;

/*création des utilisateurs*/
/*bonan*/
create user bonan
identified by bonan
default tablespace deftab
temporary tablespace temptab;

/*danfa*/
create user danfa
identified by danfa
default tablespace deftab
temporary tablespace temptab;

/*roels*/
create user roels
identified by roels
default tablespace deftab
temporary tablespace temptab;

/*saadi*/
create user saadi
identified by saadi
default tablespace deftab
temporary tablespace temptab;

/*création du profile "profile1"*/
create profile profile1 limit
idle_time 3
connect_time 120
failed_login_attempts 3
sessions_per_user 1;
/*et attribution du profile "profile1" aux utilisateurs*/
alter user bonan
profile profile1;
alter user danfa
profile profile1;
alter user roels
profile profile1;
alter user saadi
profile profile1;

/*création du role "r_conducteur"*/
create role r_conducteur;

/*et attribution des droits : select, update, insert, delete sur la table conducteur au role "r_conducteur"*/
grant select, update, insert, delete on conducteur to r_conducteur;
/*attribution du rôle "r_conducteur" à un utilisateur*/
grant r_conducteur to bonan;
Néanmoins lorsque je me connecte avec un utilisateur (bonan par exemple) et que je tape une requête de sélection (sur une table pour laquelle il a des droits) le message suivant apparait :

ORA-00942: Table ou vue inexistante

Pour voir si le problème venait des privilèges des rôles, j'ai simplement créer un nouvel utilisateur et je lui ai donné les privilèges select, update, insert, delete sur une table, et c'est le même constat : ORA-00942: Table ou vue inexistante.

Donc apparement un utilisateur ne peut accéder aux tables créés sous un autre compte alors que c'est présicement ce que je veut faire (pour ne pas avoir mes tables mélangées avec celle du system par exemple)

Si quelqu'un peut m'aider, ou m'indiquer la solution pour que les utilisateurs puissent accéder à la BDD créée avec l'utilisateur oracle parce que la jsuis paumé