Ayrıcalık doğrudan veya bir rol için verildiyse, hibe DBA_TAB_PRIVS
SELECT grantee, privilege
FROM dba_tab_privs
WHERE owner = 'B'
AND table_name = 'MYPACKAGE'
AND privilege = 'EXECUTE'
Bu grantee
bir rolse, o dba_role_privs
kullanıcıya hangi rollere (veya rollere) sahip olduğunu görmek ve diğer rollere verilen rolleriniz varsa zinciri takip etmek gerekir. (Çok tehlikeli) ANY
hibeler (yani EXECUTE ANY PROCEDURE
) nedeniyle hibeleri olan kullanıcıları hesaba katmanız gerekirse , bu ayrı bir sorgu gerektirir.
dba_tab_privs
Bununla birlikte, sadece düz bir sorgu yapmaktan daha sofistike olmak istiyorsanız, muhtemelen Pete Finnigan'ınwho_has_priv.sql
(veya who_has_priv_procedure.sql
) gibi senaryolarını kullanmaktan daha iyidir . Pete muhtemelen Oracle güvenliği konusunda önde gelen bir uzmandır, bu nedenle bunların her olası köşe vakasını açıklamak için birlikte çakmaya çalışacağım her şeyden çok daha olasıdır.