반응형
Package와 Package body가 있습니다.
기본적으로 grant execute on 권한을 패키지에 부여하면 패키지의 내용만 확인이 가능하고 package body의 내용은 확인이 불가능합니다.
아래의 권한을 추가하여 Package body의 내용을 확인할 수 있습니다.
grant debug on [패키지] to [권한 받을 유저]; |
HR이 SCOTT에 있는 패키지 바디를 조회하려고 할 때.
HR이 가지고 있는 패키지(PAC_TEST)의 권한 확인(EXECUTE 권한이 있음을 확인)
SQL> select * from dba_tab_privs
where grantee='HR'
and table_name='PAC_TEST';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
HR SCOTT PAC_TEST SCOTT EXECUTE NO NO
1 rows selected.
오렌지로 조회했을 때, PACKAGE의 내용을 확인할 수 있습니다.
패키지 바디의 내용 조회시 아무것도 나타나지 않습니다.
SQL로 debug권한을 HR에 추가해 줍니다
SQL> grant debug on scott.PAC_TEST to hr;
SQL> select * from dba_tab_privs
where grantee='HR'
and table_name='PAC_TEST';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
HR SCOTT PAC_TEST SCOTT DEBUG NO NO
HR SCOTT PAC_TEST SCOTT EXECUTE NO NO
2 rows selected.
다시 패키지 바디를 조회합니다.
내용이 조회되는것을 확인할 수 있습니다.
**추가사항
티베로6에서도 동일한 테스트 진행하였으나, Syntax Error 발생하며 되지 않았습니다. 아마 debug 관련 명령어는 티베로에서는 사용할 수 없는것 같습니다.
SQL> grant debug to test.PAC_TEST to HR;
TBR-7001: General syntax error.
at line 1, column 7 of null:
grant debug to test.PAC_TEST to HR
반응형
'Oracle > 운영' 카테고리의 다른 글
dba_tables 과 dba_segments의 차이 (0) | 2021.02.05 |
---|---|
[Reorg] 대상 테이블 추출하기 (DBMS_ROWID,DBMS_SPACE) (0) | 2021.02.04 |
DBA_SCHEDULER_JOB_LOG (0) | 2021.01.29 |
[일일점검] 쿼리 및 Shell 파일 - Linux& Unix (0) | 2021.01.27 |
[JOB] Failure 초기화 하는 방법 (0) | 2021.01.26 |
댓글