오라클 사용자 생성/시스템 권한/객체 권한
사용자를 생성하기 위해서는 시스템 권한을 가진 데이터베이스 관리자 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 |