ORACLE 사용자 관리
사용자 관리
(1) 사용자 계정과 암호 설정
- 데이터베이스에 접근할 수 있는 아이디와 암호를 만든다.
- [형식]
CREATE USER 사용자이름
IDENTIFIED BY 암호;
//새로운 사용자 계정과 암호를 만드는 구문
CREATE USER USER01 IDENTIFIED BY PASS01;
(2) 보안을 위한 데이터베이스 관리자
- 사용자가 데이터베이스의 객체에 대한 특정 권한을 가질 수 있게 한다.
- 다수의 사용자가 공부하는 데이터베이스 정보에 대한 정보 보안을 설정한다.
- 데이터베이스에 접근하는 사용자마다 서로 다른 권한과 롤을 부여할 수 있다.
(3)권한이란?
- 사용자가 특정 테이블에 접근할 수 있도록 하거나, 해당 테이블에 SQL(SELECT/INSERT/UPDATE/DELETE)문을 사용할 수 있도록 제한을 두는 것을 말한다.
1. 시스템 권한
- 데이터베이스 관리자가 가지고 있는 권한
- CREATE USER - 사용자 계정 만들기
- DROP USER - 사용자 계정 삭제하기
- DROP ANY TABLE - 임의의 테이블 삭제하기
- QUERY REWRITE - 함수 기반 인덱스 생성하기
- BACKUP ANY TABLE - 테이블 백업하기
2. 사용자 관리
- 시스템 관리자가 사용자에게 부여하는 권한
- CREATE SESSION - 데이터베이스에 접속하기
- CREATE TABLE - 테이블 생성하기
- CREATE VIEW - 뷰 생성하기
- CREATE SEQUENCE - 시퀀스 생성하기
- CREATE PROCEDURE - 함수 생성하기
3. 객체 권한
- 객체를 조작할 수 있는 권한
- [문법]
GRANT 권한종류
TO 사용자이름 | PUBLIC
[WITH ADMIN OPTION];
4. 권한 부여하는 방법
[1] system 계정에서
GRANT CREATE SESSION TO USER01;
[2] USER01 로그인함
CONN USER01/PASS01
SHOW USER
[3] 테이블 생성 권한 부여하기
GRANT CREATE TABLE TO USER01;
[4] USER01로 로그인 한 후, 테이블 다시 생성함
CONN USER01/PASS01;
SHOW USER
CREATE TABLE EMP01 ()
-> 이렇게 해도 테이블을 생성할 수 있는 권한을 부여받지 않게 되서 테이블이 생성 안됨.
그 이유는 테이블스페이스 때문이다.
!!테이블스페이스란?
- 테이블, 뷰, 그 밖의 데이터베이스 객체들이 저장되는 디스크상의 장소를 말한다.
- 오라클 설치시 scott 계정의 데이터를 저장하기 위한 USERS라는 테이블스페이스가 있다.
- 테이블스페이스 쿼터 할당 예
- USER01 사용자가 사용할 테이블스페이스 영역을 할당한다.
ALTER USER USER01
QUOTA 2M ON SYSTEM;
4. 권한 철회
[형식]
REVOKE 권한종류 | ALL
ON 객체명
FROM [사용자이름 | ROLE 이름 | PUBLIC];
!!롤(ROLE)이란?
- 사용자에게 보다 간편하게 권한을 부여할 수 있도록 여러 개의 권한을 묶어놓은 것이다.
- 사용자 권한 관리를 보다 간편하고 효율적으로 할 수 있게 한다.
- 다수의 사용자에게 공통적으로 필요한 권한들을 롤에 하나의 그룹으로 묶어 두고, 사용자에게는 특정 롤에 대한 권한을 부여할 수 있도록 함.
- 롤을 활성화하거나 비활성화하여 일시적으로 권한을 부여했다 철회했다 할 수 있음.