본문 바로가기

IT/Oracle

오라클 사용자 생성/시스템 권한/객체 권한

오라클 사용자 생성/시스템 권한/객체 권한 

사용자를 생성하기 위해서는 시스템 권한을 가진 데이터베이스 관리자 DBA인 

SYS, SYSTEM으로 접속을 해야 합니다.


[유저 생성]

1) System 계정으로 오라클 접속


SQL> conn system/비밀번호

SQL> SHOW USER;

-> 현재 접속한 유저를 확인함


2) ID가 superuser 계정 생성 (비밀번호 : 1234)

SQL> CREATE USER superuser IDENTIFIED BY 1234;


-> SUPERUSER로 접속

SQL> CONN SUPERUSER/1234;


-> SUPERUSER에게 접속 권한을 주지 않아 에러 발생


SESSION -> 접속권한


3) 접속권한 설정

-> SYSTEM 권한 접속

SQL> CONN SYSTEM/비밀번호


SQL> GRANT CREATE SESSION TO SUPERUSER;

-> SUPERUSER로 재접속합니다


4) 다른 소유자 테이블 접근

-> 에러 발생 : ORA-00942:테이블 또는 뷰가 존재하지 않습니다.

     SUPERUSER에게 해당 테이블 객체의 검색 권한이 없기 때문입니다.


-> 객체 접근 권한 설정

가) SYSTEM  계정 접속

SQL> CONN SYSTEM/비밀번호

SQL> GRANT SELECT ON HR.EMPLOYEES TO SUPERUSER;

-> SELECT 확인

SQL> SELECT * FROM HR.EMPLOYEES;


[시스템 권한 설정]

시스템 권한은 오라클 접속, 테이블이나 뷰, 인덱스를 생성하는 권한입니다.

이 권한은 DBA인 SYS와 SYSTEM 유저가 부여합니다.


SQL> GRANT SYSTEM_PRIVILEGE TO USER_NAME;


alter user [유저명] default tablespace users quota unlimited on users;


오라클 권한 설정


시스템권한 종류 (무언가를 만들다가 안되는 권한)


시스템권한 

기능 

CREATE USER

사용자를 생성하는 권한 

DROP USER 

사용자를 삭제하는 권한 

DROP ANY TABLE 

임의의 테이블을 삭제할 수 있는 권한 


일반사용자가 가지는 시스템권한


시스템 권한 

기능 

 CREATE SESSION

데이터베이스에 접속할 수 있는 권한 

 CREATE(ALTER, DROP) TABLE

테이블 생성(변경, 삭제) 할 수 있는 권한

 CREATE(DROP) VIEW

사용자 스키마에서 뷰를 생성할 수 있는 권한 

 CREATE(ALTER, DROP) SEQUENCE

사용자 스키마에서 시퀀스를 생성할 수 있는 권한 

 CREATE(ALTER, DROP) PROCEDURE

사용자 스키마에서 프로시저, 함수, 패키지를 생성할 수 있는 권한 

 CREATE(ALTER, DROP) SYNONYM

동의어를 생성할 수 있는 권한

 CREATE(ALTER, DROP) TRIGGER

트리거를 생성할 수 있는 권한 


[객체 권한 설정]

객체 권한은 테이블이나 뷰, 시퀀스, 함수 등과 같은 객체별로 DML(SELECT, INSERT, DELETE)을 

사용할 수 있는 권한 설정입니다.


객체권한 종류

OBJECT 권한

허가된 내용 

 ALTER

 객체에 대해 변경할 수 있는 권한

 COMMENT

 객체에 대해 COMMENT 할 수 있는 권한

 DELETE

 객체에 대해 자료를 삭제할 수 있는 권한

 GRANT

 객체에 대해 GRANT 할 수 있도록 하는 권한

 INDEX

 인덱스를 생성할 수 있는 권한

 INSERT

 데이터를 삽입할 수 있는 권한

 RENAME

 이름을 변경할 수있는 권한

 SELECT

 데이터를 조회할 수 있는 권한

 UPDATE

 데이터를 갱신할 수 있는 권한

 REFERENCE

 데이터를 참조할 수 있는 권한

 EXECUTE

 프로시저, 함수, 패키지를 실행할 수 있는 권한


객체별 권한 정리

 객체 권한

TABLE 

VIEW 

SEQUENCE 

PROCEDURE 

 ALTER

○ 

 

  

 

 DELETE

  

  

 

 

 EXECUTE

 

 

 

  

 INDEX

  

 

 

 

 INSERT

  

  

 

 

 REFERENCE

  

 

 

 

 SELECT

  

  

  

 

 UPDATE

  

  

 

 


형식)

SQL>GRANT object_privilege ON object TO user_name;


[권한 조회]

user_tab_privs_made : 현재 사용자가 다른 사용자에게 부여한 권한  정보를 확인할 수 있다.

user_tab_privs_recd : 현재 사용자에게 부여된 권한 정보를 확인할 수 있다.


SQL> SELECT * FROM user_tab_privs_made;

SQL> SELECT * FROM user_tab_privs_recd;


[권한 회수]

사용자에게 부여된 객체 권한을 데이터베이스 관리자나 객체 소유자가 회수할 수 있다.

형식)

SQL>REVOKE object_privilege ON object FROM user_name;

예)

SQL>REVOKE SELECT ON HR.EMPLOYEES FROM SUPERUSER;


[ROLE의 개념]

ROLE은 사용자에게 허가할 수 있는 관련된 권한들의 그룹입니다.

이러한 ROLE을 이용하면, 권한 부여와 회수를 쉽게 할 수 있습니다.


생성)

SQL>CREATE ROLE BASICROLE;

SQL>GRANT CREATE, SESSION, CREATE TABLE, CREATE VIEW, TO BASICROLE;


사용)

SQL> CREATE USER TEST1 IDENTIFIED BY 1234;

SQL> CREATE USER TEST2 IDENTIFIED BY 1234;


SQL> GRANT BASICROLE TO TEST1, TEST2;\

'IT > Oracle' 카테고리의 다른 글

오라클 문법  (0) 2015.07.29
oracle 프로시저, 함수, 패키지  (0) 2015.07.28
오라클 프로시저  (0) 2015.07.27
오라클 10탄 [ INDEX ]  (0) 2015.07.25
오라클 9탄 (sequence,view)  (0) 2015.07.24