Oracle/운영
권한으로 다른유저의 Package body 확인하기
취미툰
2021. 2. 3. 19:02
반응형
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
반응형