6
Oracle 10g db (이 경우 패키지)의 특정 객체에 대한 실행 권한이 이미 부여 된 스키마를 찾아야합니다. 이 일을하는 가장 간단한 방법은 무엇입니까? 이 정보를 제공하는 내장 함수가 있습니까?Oracle 오브젝트에 EXECUTE 권한이 부여 된 스키마를 확인하려면 어떻게합니까?
Oracle 10g db (이 경우 패키지)의 특정 객체에 대한 실행 권한이 이미 부여 된 스키마를 찾아야합니다. 이 일을하는 가장 간단한 방법은 무엇입니까? 이 정보를 제공하는 내장 함수가 있습니까?Oracle 오브젝트에 EXECUTE 권한이 부여 된 스키마를 확인하려면 어떻게합니까?
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>';
실제로 좀 더 일반적인 것 또는 패키지 전용 케이스 ... – MPritchard
모두가 용서되었습니다! 좋은 오래된 오라클과 시스템 테이블의 no-nonsense 명명 : – MPritchard
lol, all_tab_privs는이 테이블에 대한 끔찍한 이름입니다. – Reimius