답변:
권한이 직접 또는 역할에 부여 된 경우 해당 권한은 DBA_TAB_PRIVS
SELECT grantee, privilege
FROM dba_tab_privs
WHERE owner = 'B'
AND table_name = 'MYPACKAGE'
AND privilege = 'EXECUTE'
이 grantee
역할 인 경우 dba_role_privs
해당 역할이 부여 된 사용자 (또는 역할)를 확인하고 다른 역할에 부여 된 역할이있는 경우 체인을 따라야합니다. (매우 위험한) ANY
보조금 (즉 EXECUTE ANY PROCEDURE
, )으로 인해 보조금이있는 사용자를 고려해야 하는 경우 별도의 쿼리가 필요합니다.
에 대한 간단한 쿼리를 수행하는 것보다 더 정교 해지고 싶다면 (또는 ) 와 같은 Pete Finnigan의 스크립트를dba_tab_privs
사용하는 것이 좋습니다 . Pete는 아마도 Oracle 보안의 선도적 인 전문가 일 것이므로 가능한 한 모든 코너 사건을 설명 할 가능성이 훨씬 높습니다.who_has_priv.sql
who_has_priv_procedure.sql