[Oracle] 프로시저(Procedure) 권한 부여 방법
- 데이터베이스/오라클
- 2022. 9. 13.
오라클에서 타 스키마에 생성된 프로시저의 사용 권한 또는 실행 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용한다. "프로시저 권한이 불충분합니다"라는 오류 메시지가 발생하면 실행 권한을 부여하면 된다. 프로시저 생성, 컴파일, DDL 권한을 부여하기 위해서는 "GRANT CREATE PROCEDURE" 구문을 사용하여 권한을 부여하면 프로시저 생성, 수정, 삭제 권한이 부여된다.
목차 |
프로시저 실행 권한 부여 (EXECUTE)
특정 프로시저 실행 권한 부여
-- 프로시저 실행 권한 부여
GRANT EXECUTE ON hr.pc_helloworld TO scott;
-- 프로시저 실행 권한 제거(회수)
REVOKE EXECUTE ON hr.pc_helloworld FROM scott;
GRANT EXECUTE ON [스키마.프로시저명] TO [사용자 계정]
GRANT 문을 사용하여 자신의 스키마(scott)가 아닌 다른 스키마(hr)에 생성된 프로시저의 실행 권한을 부여한다.
REVOKE 문을 사용하여 부여된 권한을 삭제(회수) 할 수 있다.
특정 프로시저 실행 권한을 모든 사용자에게 부여
-- 모든 사용자(public) 프로시저 실행 권한 부여
GRANT EXECUTE ON hr.pc_helloworld TO public;
-- 모든 사용자(public) 프로시저 실행 권한 제거(회수)
REVOKE EXECUTE ON hr.pc_helloworld FROM public;
GRANT EXECUTE ON [스키마.프로시저명] TO public
사용자 계정 대신 public 키워드를 사용하면 해당 프로시저의 실행 권한을 모든 사용자에게 부여할 수 있다.
모든 프로시저 실행 권한 부여
-- 모든 프로시저 실행 권한 부여
GRANT EXECUTE ANY PROCEDURE TO scott;
-- 모든 프로시저 실행 권한 제거(회수)
REVOKE EXECUTE ANY PROCEDURE FROM scott;
EXECUTE ANY PROCEDURE 구문을 사용하면 특정 사용자(scott)에게 모든 프로시저의 실행 권한을 부여할 수 있다.
프로시저 생성 권한 부여 (CREATE)
자신의 스키마에 프로시저 생성 권한 부여
-- 자신의 스키마에 프로시저 생성 권한 부여
GRANT CREATE PROCEDURE TO scott;
-- 자신의 스키마에 프로시저 생성 권한 제거(회수)
REVOKE CREATE PROCEDURE FROM scott;
GRANT CREATE PROCEDURE 구문을 사용하여 자신의 스키마(scott)에 프로시저를 생성할 수 있는 권한을 부여한다. 해당 권한을 부여하면 프로시저 생성(CREATE), 수정(REPLACE), 제거(DROP)의 권한이 모두 부여된다.
GRANT CREATE PROCEDURE 권한인 경우 프로시저(Procedure), 함수(Function), 패키지(Package)의 생성, 수정, 삭제 권한이 모두 부여된다.
모든 스키마에 프로시저 생성 권한 부여
-- 모든 스키마에 프로시저 생성 권한 부여
GRANT CREATE ANY PROCEDURE TO scott;
-- 모든 스키마에 프로시저 삭제 권한 부여
GRANT DROP ANY PROCEDURE TO scott;
-- 모든 스키마에 프로시저 생성 권한 제거(회수)
REVOKE CREATE ANY PROCEDURE FROM scott;
-- 모든 스키마에 프로시저 생성 삭제 제거(회수)
REVOKE DROP ANY PROCEDURE FROM scott;
GRANT CREATE ANY PROCEDURE 구문을 사용하여 모든 스키마에 프로시저의 생성 권한을 부여한다. ANY 권한인 경우 삭제(DROP) 권한을 따로 부여해야 다른 스키마에 생성된 프로시저를 삭제할 수 있다.