J'ai un répertoire dans all_directories, mais je dois savoir quelles autorisations lui sont associées, c'est-à-dire quelles autorisations ont été accordées.
Cela devrait vous donner les rôles, les utilisateurs et les autorisations accordées sur un répertoire:
SELECT *
FROM all_tab_privs
WHERE table_name = 'your_directory'; --> needs to be upper case
Et oui, il IS dans la vue all_TAB_privs ;-) Un meilleur nom pour cette vue serait quelque chose comme "ALL_OBJECT_PRIVS", car il inclut également les objets PL/SQL et leurs autorisations d'exécution.
Vous pouvez voir tous les privilèges pour tous les répertoires avec ce qui suit
SELECT *
from all_tab_privs
where table_name in
(select directory_name
from dba_directories);
Ce qui suit vous donne les instructions SQL pour accorder les privilèges si vous devez sauvegarder ce que vous avez fait
select 'Grant '||privilege||' on directory '||table_schema||'.'||table_name||' to '||grantee
from all_tab_privs
where table_name in (select directory_name from dba_directories);
Vous ne saviez pas trop si vous vouliez savoir quels utilisateurs Oracle peuvent lire/écrire avec le répertoire ou la corrélation des autorisations entre Oracle Directory Object et le répertoire du système d'exploitation sous-jacent.
Comme DCookie a couvert le côté Oracle de la clôture, les informations suivantes sont extraites de la documentation Oracle trouvée ici .
Privilèges accordés pour le répertoire sont créés indépendamment du autorisations définies pour le fonctionnement répertoire système, et les deux peuvent ou peut ne pas correspondre exactement. Pour Par exemple, une erreur se produit si sample le privilège READ est accordé à l'utilisateur hr sur l'objet d'annuaire mais le système d'exploitation correspondant Le répertoire n’a pas READ autorisation définie pour Oracle Database processus.
Avec Oracle 11g R2 (au moins avec 11.2.02), il existe une vue nommée datapump_dir_objs.
SELECT * FROM datapump_dir_objs;
La vue affiche la NAME
de l'objet d'annuaire, les autorisations PATH
ainsi que READ
et WRITE
pour l'utilisateur actuellement connecté. Cependant, il ne montre aucun objet de répertoire pour lequel l'utilisateur actuel n'a pas l'autorisation de lire ou d'écrire.