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