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. 7. 3. 15:26

프로파일

 

오라클 데이터베이스에 프로파일을 작성함으로서 시스템 자원을 효과적으로 관리할 수 있다.

프로파일이란, 사용자가 사용 가능한 시스템 자원의 한계를 관리하고 암호에 대한 복잡성을 관리할 수 있다.

 

시스템 자원과 암호 제한의 집합의 이름이다.

 

프로파일이 쓰이는 목적

1. 자원 사용에 대한 제한 설정

    RESOURCE_LIMIT 초기화 파라미터가 TRUE일 경우에만 리소스 제한이 가능하다.

2. 패스워드 사용에 대한 제한 설정이 가능하다

3. 모든 user는 profile 이 지정되어 있다.

    한번에 하나의 프로파일만 할당한다.

4. DEFAULT profile 

    프로파일이 지정되지 않은 user에게 적용된다.

 

SQL> conn system/oracle

SQL> select username,profile from dba_users;

모든 USER 를 SELECT 하는데 PROFILE 이 모두 default 값.

CREATE PROFILE 명령

CREATE PROFILE  프로파일 명 LIMIT

파라미터 이름    값

 

ex) create profile app_user LIMIT 

session_per_user      Unlimited                 (제한없음 동일한 이름으로 세션을 몇 개까지 만들 수 있는지 

CPU_per_session     unlimited                  세션 하나당 CPU를 몇 개까지 쓸 수 있게 하는지

CPU_PER_CALL      3000                           명령어가 30초 넘어가면 Error 

CONNECT_TIME      45                               로그인 해놓고 45분 지나면 끊어버리겠다

IDLE_TIME                10                               아무것도 안하고 10분 지나면 끊어버리겠다. 

LOGICAL_READS_PER_SESSION            현재 디폴트 프로파일을 지정된 값을 그대로 따르겠다

LOGICAL_READS_PER_CALL  1000         명령어 하나당 I/O 개수

FAILED_LOGIN_ATTEMPTS       5              연속적으로 로그인 5번 실패하면  락 건다.

PASSWORD_LOCK_TIME          1/24          패스워드 락을 1시간 동안 락을 건다

PASSWORD_LIFE_TIME             60            패스워드의 라이프 타임. 60일 지나면 바꾸라고 말함

PASSWORD_GRACE_TIME        10            10일동안 바꾸라는 말함. DBA가 풀어주기 전까지 안풀림

PASSWORD_REUSE_TIME        60             똑같은 패스워드를 쓰려면 60일 이후에나 쓸 수 있음.

PASSWORD_REUSE_MAX         5               5번 다른 패스워드를 써야만 썼던 패스워드 쓸 수 있게 하겠다.

PASSWORD_VERIFY_FUNCTION  veryfy_function    패스워드 체크해 주는 함수.

 

 

 

프로파일 할당

alter user user01 profile app_user;

    ㄴ-> user01의 자원 사용과 패스워드 사용을 제한한다.

    ㄴ-> 자원관리를 활성화 하려면 resourec_limit 파라미터가 true 여야 한다.

┗━> alter system set resource_limit = true;

 

유저에게 할당량 지정

- UNLIMITED TABLESPACE 시스템 권한이 없는 유저는 테이블 스페이스에 객체를 생성하려면 할당량이 있어야 한다.

- 할당량은 특정 값(MB, KB) 또는 Unlimited로 지정할 수 있음

                    ┃                              ┗━> 사용 가능한 최대 공간 사용

                    ┗━> 현재 테이블스페이스의 가용 공간보다는 작게 선언

 

 

1. 기존 공간 부여 방법

Create user new_user

..

QUOTA 10m on users 

 ㄴ--> 테이블 스페이스의 공간을 10m 만큼 받아낸다.

 

alter user new_user

QUOTA 200m on users;

--> talbe space 공간 추가.  DBA가 늘릴 수 있다. 일반유저는 불가능하다.

 

하나하나 다 지정해주기 너무 귀찮을때 

grant unlimited tablespace to new_user;

 ㄴ--> 어떤 데이터 파일이던지 무한정 공간을 받을 수 있게 하겠다.

 ㄴ--> 관리자 입장에서 불안할 수 있으므로 쿼터를 지정하는 것이 좋다.

 

11g : unlimited tablespace

--> 11g 부터는 쿼터를 지정하지 않아도 다 공간할당이 되어있음. 롤 안에 있는 것이 아닌 따로 붙어다닌다.

 

 

 최소권한의 원칙 적용

- 유저가 작업을 효율적으로 완료하는데 필요한 권한만 유저에게 부여한다.

- 유저가 수정하거나 볼 수 있는 권한을 가져서는 안되는 데이터를 실수로 또는 악의적으로 수정하거나 볼 수 있는 가능성 줄어든다.

 

1) 데이터 딕셔너리 보호

    o7_dictionary_accessibility=fasle

    -oracle version 7시절, select any table 만 있으면 internal 테이블 모두 selecting 이 가능했었다.

    지금은  select_catalog_role 이 필요하다.

 

2) Public에서 불필요한 권한 취소

grant to public; --> 모두에게 똑같이 권한을 준다.

import, export 등을 남용하게 될 수도 있다.

 

3) 네트워크 액세스 제어(ACL)

오라클 DBACL을 사용하여 네트워크 액세스 제어함. 네트워크 액세스는 기본적으로 거부. 네트워크 액세스 생성하려면 ACL 생성해야함.

 

4) 유저가 액세스 할 수 있는 디렉토리 제한

- DBA는 개별 유저에게 디렉토리에 대한 권한을 부여할 수 있음

 

5) 관리 권한을 갖는 유저 제한

- 유저에게 필요 이상으로 많은 권한 제공 x. DBA 롤 부여

 

6) 원격 데이터베이스 인증 제한

- REMOTE_OS_AUTHENT = FALSE를 신뢰하는 유저 외에는 변경해선 안됨.