오라클 프로시저 권한 조회 - olakeul peulosijeo gwonhan johoe

필요시 테이블/프로시져에 대한 권한을 다른 계정에 부여할 경우가 생긴다.

예를 들어서,

EAI를 통해 타 시스템으로부터 데이터를 I/F받을 경우에

중간 I/F테이블을 구성하는 경우가 있다.

[ 타시스템 ] <-- EAI --> [ IF계정 테이블 -> [JOB[프로시져 수행] -> 업무계정 테이블] ]

이렇게되면 I/F테이블에 대한 Access권한을 업무 계정에 부여하여 사용한다.

테이블에 대한 권한부여 / 회수

GRANT ALL ON 테이블명 TO 계정;      -- ALL 권한
GRANT SELECT ON 테이블명 TO 계정;   -- 조회 권한
GRANT UPDATE ON 테이블명 TO 계정;   -- 수정 권한
GRANT DELETE ON 테이블명 TO 계정;   -- 삭제 권한
GRANT INSERT ON 테이블명 TO 계정;   -- 등록 권한

REVOKE ALL ON 테이블명 FROM 계정;     -- ALL 권한
REVOKE SELECT ON 테이블명 FROM 계정;  -- 조회 권한
REVOKE UPDATE ON 테이블명 FROM 계정;  -- 수정 권한
REVOKE DELETE ON 테이블명 FROM 계정;  -- 수정 권한
REVOKE INSERT ON 테이블명 FROM 계정;  -- 수정 권한

GRANT의 경우 구문 마지막부분에 WITH GRANT OPTION 옵션을 넣을경우 권한을 부여받은 계정도

권한을 부여할 수 있는 권한이 생긴다.

프로시져 수행에 대한 권한부여 / 회수

GRANT EXECUTE ON 계정.프로시져명 TO 계정;
REVOKE EXECUTE ON 계정.프로시져명 FROM 계정;

권한부여 여부 확인

SELECT GRANTEE,  --부여된 계정
       OWNER,    --소유자
       TABLE_NAME, --테이블이름
       GRANTOR, --부여한 계정
       PRIVILEGE  --권한
 FROM USER_TAB_PRIVS;

develog

DB/Oracle

[Oracle] GRANT 조회

냐옴 2015. 1. 13. 18:55

권한 테이블

USER_TAB_PRIVS

부여된 권한 조회 (펑션, 프로시저, 패키지)

SELECT *
FROM USER_TAB_PRIVS
WHERE OWNER = 'USER01'
AND GRANTEE = 'USER02'
AND PRIVILEGE = 'EXECUTE'
ORDER BY TABLE_NAME
;

부여된 권한 조회 (시퀀스)

SELECT *
FROM USER_TAB_PRIVS
WHERE OWNER = 'USER01'
AND GRANTEE = 'USER02'
AND INSTR(TABLE_NAME, 'SEQ') > 0
ORDER BY TABLE_NAME
;

PRIVILEGE 리스트

SELECT
INSERT
UPDATE
DELETE

EXECUTE
DEBUG

ALTER
INDEX
DEQUEUE
FLASHBACK
ON COMMIT REFRESH
QUERY REWRITE
READ
REFERENCES
UNDER
WRITE

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

오라클 프로시저 권한 조회 - olakeul peulosijeo gwonhan johoe
오라클 프로시저 권한 부여 방법

목차

  1. 프로시저 실행 권한 부여 (EXECUTE)
  2. 프로시저 생성 권한 부여 (CREATE)

프로시저 실행 권한 부여 (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) 권한을 따로 부여해야 다른 스키마에 생성된 프로시저를 삭제할 수 있다.

[Oracle] 함수(Function) 권한 부여 방법 (GRANT, REVOKE)

오라클에서 다른 스키마의 함수 실행(사용) 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하면 된다. 그리고 함수의 생성 또는 컴파일 권한을 부여하기 위해서는 "GRANT CREATE FUNCTION" 구문을

gent.tistory.com

오라클 프로시저 권한 조회 - olakeul peulosijeo gwonhan johoe

[Oracle] 테이블 권한 부여 방법 (GRANT, REVOKE)

오라클에서 다른 스키마(사용자)에 생성된 테이블의 DML(SELECT, INSERT, UPDATE, DELETE ) 권한을 부여하기 위해서는 GRANT 문을 사용하면 된다. GRANT CREATE ANY TABLE 권한을 부여하면 다른 스키마에 테이블을.

gent.tistory.com

오라클 프로시저 권한 조회 - olakeul peulosijeo gwonhan johoe

[Oracle] 시스템 권한 부여 방법 (GRANT, REVOKE)

오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생

gent.tistory.com

오라클 프로시저 권한 조회 - olakeul peulosijeo gwonhan johoe