데이터베이스

ORACLE 사용자 관리

jjonse 2023. 1. 8. 20:30
사용자 관리

(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)이란?

- 사용자에게 보다 간편하게 권한을 부여할 수 있도록 여러 개의 권한을 묶어놓은 것이다.

- 사용자 권한 관리를 보다 간편하고 효율적으로 할 수 있게 한다.

- 다수의 사용자에게 공통적으로 필요한 권한들을 롤에 하나의 그룹으로 묶어 두고, 사용자에게는 특정 롤에 대한 권한을 부여할 수 있도록 함. 

- 롤을 활성화하거나 비활성화하여 일시적으로 권한을 부여했다 철회했다 할 수 있음.