[Oracle] 패키지(Package) 권한 부여 방법

오라클에서 다른 스키마에 생성된 패키지의 실행 또는 사용 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하여 실행 권한을 부여하면 된다. 실행 권한을 부여하면 패키지 내부에 선언된 모든 함수, 프로시저를 사용할 수 있다. 패키지의 생성 권한을 부여하기 위해서는 "GRANT CREATE PROCEDURE"  구문을 사용하여 생성 권한을 부여하면 된다. 패키지의 권한 부여 방법은 프로시저의 권한 부여 방법과 동일하다.

 

오라클 패키지 권한 부여 방법

목차
  1. 패키지 실행 권한 부여 (EXECUTE)
  2. 패키지 생성 권한 부여 (CREATE)

 

패키지 실행 권한 부여 (EXECUTE)

-- 패키지 실행 권한 부여
GRANT EXECUTE ON hr.pkg_hello TO scott;

-- 패키지 실행 권한 제거(회수)
REVOKE EXECUTE ON hr.pkg_hello FROM scott;

 

GRANT EXECUTE ON [스키마.패키지명] TO [사용자 계정]

 

다른 스키마(hr)에 생성된 패키지의 실행 권한을 부여한다. 자산의 스키마(scott)에 생성된 패키지는 실행 권한을 따로 부여하지 않아도 되지만 다른 스키마에 생성된 패키지는 권한을 부여해야 사용할 수 있다.

 

패키지의 실행 권한을 부여하면 패키지 내부에 선언된 모든 함수, 프로시저를 사용할 수 있다.

 



 

패키지 하나만 권한을 부여했지만 패키지 내부에 생성된 모든 함수와 프로시저를 실행할 수 있다.

 

패키지 생성 권한 부여 (CREATE)

-- 자신의 스키마에 패키지 생성 권한 부여
GRANT CREATE PROCEDURE TO scott;

-- 자신의 스키마에 패키지 생성 권한 제거(회수)
REVOKE CREATE PROCEDURE FROM scott;

 

GRANT CREATE PROCEDURE 구문을 사용하여 자신의 스키마에 패키지를 생성 활 권한을 부여할 수 있다.

해당 권한을 부여하면 자신의 스키마에 패키지를 생성, 수정, 삭제를 할 수 있다.

 

샘플 패키지 생성

-- 패키지 헤더
CREATE OR REPLACE PACKAGE scott.pkg_hello
AS
    FUNCTION fn_helloworld RETURN VARCHAR2;
    PROCEDURE pc_helloworld;
END;

-- 패키지 바디
CREATE OR REPLACE PACKAGE BODY scott.pkg_hello
AS 
    -- 함수 생성
    FUNCTION fn_helloworld
    RETURN VARCHAR2 
    IS 
    BEGIN 
        RETURN 'Hello World!!'; 
    END;
    
    -- 프로시저 생성
    PROCEDURE pc_helloworld
    IS
    BEGIN
        DBMS_OUTPUT.PUT_LINE('Hello World!!');
    END;    
END

 

패키지 생성 권한이 부여되었다면 위의 샘플 패키지를 생성해 볼 수 있다.

 

패키지 권한 부여 방법은 프로시저(Procedure) 권한 부여 방법과 동일하며, 조금 더 자세한 권한 부여 방법을 알고 싶으면 아래의 프로시저 권한 부여 방법을 참고하면 된다.

 

[Oracle] 프로시저(Procedure) 권한 부여 방법

오라클에서 타 스키마에 생성된 프로시저의 사용 권한 또는 실행 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용한다. "프로시저 권한이 불충분합니다"라는 오류 메시지가 발생하면 실행 권

gent.tistory.com

 

댓글

Designed by JB FACTORY