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é :
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 :
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;
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é
Partager