본문 바로가기
Oracle/운영

권한으로 다른유저의 Package body 확인하기

by 취미툰 2021. 2. 3.
반응형

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
반응형

댓글