Oracle SÉLECTIONNEZ accordé, mais ne peut toujours pas accéder à la table l'ensemble des utilisateurs
Peut-on voir quel est le problème avec ceci:
L'utilisateur ABC:
create table def.something (
id number,
ref number references def.anotherTable(id)
);
create role ROUser;
grant select on def.something to ROUser;
grant ROUser to ghi;
User DEF:
select * from something;
...
X rows returned
Utilisateur GHI:
select * from def.something;
ORA-00942: table or view does not exist
Est le fait qu'il y a une clé étrangère, qui GHI n'ont pas accès à l', sur def.something
le problème?
MODIFIER j'ai juste essayé de recommencer sur un autre serveur et ça fonctionne très bien (c'est à dire, comme prévu). Pas entièrement sûr de ce qui se passe ici, mais je pense qu'il peut avoir quelque chose à voir avec une erreur de ma part... en tant Que tel, je vais voter pour fermer la question.
- qu'advient-il si vous ne
grant select on def.something to ROUser;
comme DEF?
InformationsquelleAutor Xophmeister | 2013-10-31
Vous devez vous connecter pour publier un commentaire.
Vous êtes le plus probablement en cours d'exécution qui
SELECT
déclaration en PL/SQL bloc? En PL/SQL, privilèges accordés par le biais de rôles ne sont pas reconnus. Essayez d'ajouter directementSELECT
privilège sur la table et voir si cela fonctionne.grant select
n'résoudre le problème, mais le GHI exemple ci-dessus n'est pas exécuté à l'intérieur d'un PL/SQL bloc: C'est tout droit SQL.def
schéma, grant select pourROUSer
rôle et de vérifier si vous pouvez l'interroger commeghi
utilisateur?