Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DBDBDEEP

Oracle 유저 보안 관리 (계정 종류 및 유저 인증) 본문

Oracle ADMIN

Oracle 유저 보안 관리 (계정 종류 및 유저 인증)

Kihwane 2022. 6. 30. 16:11

6장유저 보안 관리에 관한 것이다.

데이터베이스 안에서는 user create / alter / drop 등을 할 수 있는데, 각각의 user에 대해 프로파일을 이용하여 DB사용Instance 리소스에 대해 제한을 걸 수 있고 계정 상태 및 암호관리 규칙을 적용할 수 있다.

계정에 권한을 부여할 때는 Role 을 이용하여 편하게 user들에 대해 권한을 부여 가능하다.

 

* 롤 : 권한 부여 작업을 편하게 할 수 있게 하기 위한 개념

* 프로파일 : 데이터베이스 사용 및 Instance 리소스에 대해 명명된 리소스 제한의 집합을 적용하며, 계정 상태 및 암호 관리 규칙을 관리.


데이터 베이스의 유저 계정에 포함되어 있는 것

1. 고유 Username 

2. 인증방식 : db인증 / OS인증 / Global 인증

3. Table Space : 물리적인 데이터파일 하나이다. 테이블이나 인덱스를 저장할 수 있는 파일

4. 기본 Talbe Space : 위치를 따로 지정하지 않고 default한 위치에 오브젝트를 만드는 방법

5. 임시 (Temporary) Table Space : 유저를 대신하여 Instance 에서 정렬, 임시 테이블과 같은 임시객체를 생성하는 장소.

6. 유저 프로파일 : 우저에게 적용되는 리소스 및 암호 제한의 집합.

7. 초기 Consumer Group : 리소스 관리자가 사용

8. 계정 상태 : Unlock / lock

9. 스키마 : 데이터베이스 유저가 소유하는 데이터베이스 객체의 모음. 유저계정과 동일한 이름

 

미리 정의된 데이터베이스 관리 계정

미리 정의된 계정은 dba_users 테이블에 저장되어 있다.

SQL> select * from dba_users;

 

⦁ SYS 계정

 - 데이터 딕셔너리 및 AWR(성능 및 운용에 대한 통계정보 저장) 소유. 모든권한 가짐

 - 데이터 베이스 Instance 시작 및 종료에 사용

 

⦁ SYSTEM : 추가 관리 테이블 및 뷰 소유.

  - sysdba 권한은 없어 db startup, shutdown을 수행할 순 없음.

 

⦁ SYSBACKUP : ORACLE RMAN 백업 및 RECOVERY 작업 지원

                            * RMAN (Recovery Manager)

⦁ SYSDG(Data Guard) : Oracle Data Guard 작업 지원

 

⦁ SYSKM(암호와 관련) : Tranparent Data Encryption(전자지갑) 작업 지원

 

오라클이 데이터베이스 책임의 분리를 위해 다섯가지 관리권한을 제공한다.

권한 설명
SYSDBA 표준 데이터베이스 작업
- 데이터베이스 Instance 시작 및 종료
- 서버 파라미터 파일(SFILE) 생성
- ARCHIVELOG 모드 변경
피부여자에게 유저 데이터 보기 허용
SYSOPER 표준 데이터베이스 작업
- 데이터베이스 Instance 시작 및 종료
- 서버 파라미터 파일(SFILE) 생성
- ARCHIVELOG 모드 변경
SYSBACKUP Oracle RMAN 또는 SQL*Plus를 사용하는 RMAN 백업 및 recovery
SYSDG Data Guard Broker 또는 DGMGRL을 사용하는 Data Guard 작업
SYSKM Transparent Data Encryption 전자 지갑(wallet) 관리

 


유저 인증 (일반 유저)

1. password 인증 (DB인증)

Create user new_user  // 아이디 지정

Identified by new_password // 패스워드 지정

     ㄴ--> 일반 유저는 아이디와 암호를 통해 인증함

       * 일반유저 인증할 때 대소문자를 구분한다.  but, 관리자 유저는 대소문자 구분 안한다.

 

2. OS 인증

identified externally  

    ㄴ--> 패스워드 생성 간 externally 키워드를 사용하여 OS인증을 한다.

    - 데이터 베이스 외부의 방식으로 인증한다.

     - username이나 password를 지정하지 않고 오라클 데이터베이스에 쉽게 연결할 수 있다.    

      OS_AUTHNT_PREFIX 파라메터의 값| + OS username 으로 DB user를 생성

       ex) CREATE USER ops$oracle IDENTIFIED EXTERNALLY;

 

 

3. Global 인증

   ㄴ--->  LDAP 기반 디렉토리 서비스를 사용하여 유저확인.

   oracle advanced security를 구입해야한다.

 

유저 인증 (SYS,SYSBACKUP,SYSDG..유저)

1.  OS 인증 (운영체제 보안)

   ㄴ--> 설치시에 지정한 OSDBA, OSOPER OS user group

($ORACLE_HOME/rdbms/lib/config.c)에 속하는 userOS 에 로그인 한 후 다음과 같이 DB에 접속.)

    ㄴ--> $sqlplus / as sysdba

    ㄴ--> OS에 대한 보안(sys에 대한 패스워드도 뚫리면 DB도 위험해짐) 취약

 

* OS인증은 취약하다. 취약하므로 만약 OS인증을 막으려면? *

1. sqlnet.ora 파일로 들어가서

2. #sqlnet.autehntication_services=(none)을 작성한다.

OS 인증 막는 방법

 

2.  password file 인증

- 관리자 usernamepassword를 저장한 파일을 인증에 사용

- 파일위치 : $ORACLE_HOME/dbs

- 파일이름 : orapw SID

- $orapwd file=$ORACLE_HOME/dbs/orapwSID password=sys_password

 파라미터 REMOTE_LOGIN_PASSWORDFILE = exclusive 또는 share 로 설정

SQL> select * from v$pwfile_users;  ---> 패스워드 파일 내용 확인