DBDBDEEP
Oracle 프로파일 생성 및 관리 본문
프로파일
오라클 데이터베이스에 프로파일을 작성함으로서 시스템 자원을 효과적으로 관리할 수 있다.
프로파일이란, 사용자가 사용 가능한 시스템 자원의 한계를 관리하고 암호에 대한 복잡성을 관리할 수 있다.
시스템 자원과 암호 제한의 집합의 이름이다.
프로파일이 쓰이는 목적
1. 자원 사용에 대한 제한 설정
RESOURCE_LIMIT 초기화 파라미터가 TRUE일 경우에만 리소스 제한이 가능하다.
2. 패스워드 사용에 대한 제한 설정이 가능하다
3. 모든 user는 profile 이 지정되어 있다.
한번에 하나의 프로파일만 할당한다.
4. DEFAULT profile
프로파일이 지정되지 않은 user에게 적용된다.
SQL> conn system/oracle
SQL> select username,profile from dba_users;
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)
오라클 DB는 ACL을 사용하여 네트워크 액세스 제어함. 네트워크 액세스는 기본적으로 거부. 네트워크 액세스 생성하려면 ACL 생성해야함.
4) 유저가 액세스 할 수 있는 디렉토리 제한
- DBA는 개별 유저에게 디렉토리에 대한 권한을 부여할 수 있음
5) 관리 권한을 갖는 유저 제한
- 유저에게 필요 이상으로 많은 권한 제공 x. DBA 롤 부여
6) 원격 데이터베이스 인증 제한
- REMOTE_OS_AUTHENT = FALSE를 신뢰하는 유저 외에는 변경해선 안됨.
'Oracle ADMIN' 카테고리의 다른 글
Oracle 공간 관리 (0) | 2022.07.03 |
---|---|
Oracle 데이터베이스 저장 영역 구조 (0) | 2022.07.03 |
Oracle 권한 / Role (0) | 2022.07.03 |
Oracle 유저 보안 관리 (계정 종류 및 유저 인증) (0) | 2022.06.30 |
Oracle Net 서비스 구성 및 관리 도구 (0) | 2022.06.28 |