Bonjour à tous.
Quelle requête SQL me permettra de connaître les droits d'un utilisateur donné sur une table donnée ?
Merci.
Louis
Bonjour à tous.
Quelle requête SQL me permettra de connaître les droits d'un utilisateur donné sur une table donnée ?
Merci.
Louis
Hello,
C'est un peu dur de répondre à ta question. Tu veux connaitre les droits que l'utilisateur courant à reçu ?
Bon, pour dépanner, tu peux bien sur te connecter en tant que SYSTEM et exécuter la requête suivante:
un cas concret pourrait être:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from dba_tab_privs p where p.grantee = '...' /* ton utilisateur */ and p.table_name = '...' /* la table en question */
Ceci te produit un résultat comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from dba_tab_privs p where p.grantee = 'OE' and UPPER(table_name) = 'LOCATIONS'
Ceci signigie que l'utilisateur OE à les droits de SELECTION (peut faire un select) et les droits de référence (peut créer des clés étrangères) sur la table LOCATIONS de l'utilisateur HR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY ------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --------- --------- OE HR LOCATIONS HR SELECT NO NO OE HR LOCATIONS HR REFERENCES NO NO
Si ceci n'est pas assez clair pour toi, n'hésite pas à me le faire savoir,
Bien à toi,
Merci OracleFan. La requête fonctionne mais le GRANTEE correspond à un rôle et non à un utilisateur. Cela fonctionne si je teste par le rôle de l'utilisateur et non par l'utilisateur himself. Mais ça me convient aussi.
Bien cordialement.
Hello,
Si mes souvenirs sont bons, GRANTEE est le "receveur" du droit. Cela peut-être un nom d'utilisateurs ou un nom de groupe.
Bien à toi,
Un peu tardivement, désolé, merci oraclefan. je clos la discussion.
Partager