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

오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생성 및 데이터 입력(INSERT)이 가능하다. 세션 권한이 부여되지 않으면 사용자가 로그인할 때 ORA-01045 오류가 발생할 수 있다.

 

오라클 시스템 권한 부여

목차
  1. CREATE SESSION (데이터베이스 접속 권한)
  2. CREATE TABLE (테이블 생성 권한)
  3. UNLIMITED TABLESPACE (테이블스페이스 사용 권한)
  4. CREATE INDEX (인덱스 생성 권한)
  5. 권한 회수(제거) 방법 (REVOKE)
  6. 시스템 권한 부여 방법 정리

 

CREATE SESSION (데이터베이스 접속 권한)

GRANT CREATE SESSION TO scott;

 

GRANT CREATE SESSION TO [사용자명]

사용자를 생성 후 세션 권한이 부여되어야 데이터베이스 접속이 가능하다.

 

세션 권한이 부여되지 않은 상태에서 데이터베이스 접속을 하면 아래와 같은 오류가 발생한다.

ORA-01045: 사용자 SCOTT는 CREATE SESSION 권한을 가지고있지 않음; 로그온이 거절되었습니다

 

CREATE TABLE (테이블 생성 권한)

GRANT CREATE TABLE TO scott;

 

테이블 생성 권한이 부여되면 자신의 스키마(scott)에 테이블 생성 및 삭제가 가능하다.

 

GRANT CREATE ANY TABLE TO scott;
GRANT DROP ANY TABLE TO scott;

 

CREATE ANY TABLE 권한을 부여하면 다른 사용자의 스키마에 테이블을 생성할 수 있다. 예를 들어 hr이라는 스키마에 테이블을 생성할 수 있으며, DROP ANY TABLE 권한이 부여되어야 다른 스키마에 생성한 테이블을 삭제할 수 있다.

 

UNLIMITED TABLESPACE (테이블스페이스 사용 권한)

GRANT UNLIMITED TABLESPACE TO scott;

 

UNLIMITED TABLESPACE 권한은 모든 테이블스페이스를 제한 없이 사용할 수 있는 권한이다. 일반 사용자가 모든 테이블스페이스를 제한 없이 사용하는 것은 운영 측면에서 좋지 않기 때문에 아래와 같이 사용할 것을 권장한다.

 

ALTER USER scott QUOTA 10M ON tblspace1;

 

ALTER USER [사용자명] QUOTA [제한용량] ON [테이블스페이스명]

해당 사용자에 지정된 테이블스페이스에 제한용량 및 권한을 부여할 수 있다.

 

CREATE INDEX (인덱스 생성 권한)

GRANT CREATE ANY INDEX TO scott;
GRANT DROP ANY INDEX TO scott;

 

CREATE ANY INDEX, DROP ANY INDEX 권한을 부여하면 인덱스 생성 및 제거를 할 수 있다.

 

권한 회수(제거) 방법 (REVOKE)

REVOKE CREATE SESSION FROM scott;
REVOKE CREATE TABLE FROM scott;
REVOKE DROP ANY TABLE FROM scott;
REVOKE CREATE ANY TABLE FROM scott;
REVOKE UNLIMITED TABLESPACE FROM scott;
REVOKE CREATE ANY INDEX FROM scott;
REVOKE DROP ANY INDEX FROM scott;

 

REVOKE [권한 구분] FROM [사용자명]

REVOKE 문을 사용하여 부여된 권한을 회수(제거) 할 수 있다.

 

시스템 권한 부여 방법 정리

구분 시스템 권한 종류
SESSION CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
TABLE CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE
TABLESPACE CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
INDEX CREATE INDEX
ALTER INDEX
RESTRICTED INDEX

 

 

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

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

gent.tistory.com

 

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

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

gent.tistory.com

 

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

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

gent.tistory.com

 

댓글

Designed by JB FACTORY