[Oracle] 패키지(Package) 권한 부여 방법
- 데이터베이스/오라클
- 2022. 9. 14.
오라클에서 다른 스키마에 생성된 패키지의 실행 또는 사용 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하여 실행 권한을 부여하면 된다. 실행 권한을 부여하면 패키지 내부에 선언된 모든 함수, 프로시저를 사용할 수 있다. 패키지의 생성 권한을 부여하기 위해서는 "GRANT CREATE PROCEDURE" 구문을 사용하여 생성 권한을 부여하면 된다. 패키지의 권한 부여 방법은 프로시저의 권한 부여 방법과 동일하다.
목차 |
패키지 실행 권한 부여 (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) 권한 부여 방법과 동일하며, 조금 더 자세한 권한 부여 방법을 알고 싶으면 아래의 프로시저 권한 부여 방법을 참고하면 된다.