2009-08-10 7 views

답변

6
SELECT grantee 
    FROM all_tab_privs 
WHERE table_name = '<your object name>' 
    AND privilege = 'EXECUTE' 
    AND grantor = '<object owner>'; 

그래, 나도 알아, 그것은 "TABLE_NAME"라고하지만, 그것은뿐만 아니라 실행 개체에 적용됩니다. 테이블 DBA_TAB_PRIVS도 작동합니다. 이러한보기에서 선택하고 모든 데이터를 보려면 적절한 권한 (예 : DBA 역할, SELECT ANY TALBE)이 필요합니다.

Martin의 의견에 응답하여 ... 위 내용은 제가 아는 바에 대한 질문에 대한 가장 쉬운 방법입니다. 패키지로 제한하려면 다음을 시도하십시오.

SELECT * FROM all_tab_privs JOIN all_objects ON (table_name = object_name) 
WHERE table_name = '<your object name>' 
    AND object_type = 'PACKAGE' 
    AND privilege = 'EXECUTE' 
    AND grantor = '<object owner>'; 
+0

실제로 좀 더 일반적인 것 또는 패키지 전용 케이스 ... – MPritchard

+1

모두가 용서되었습니다! 좋은 오래된 오라클과 시스템 테이블의 no-nonsense 명명 : – MPritchard

+0

lol, all_tab_privs는이 테이블에 대한 끔찍한 이름입니다. – Reimius