1. USER 생성
Oracle Server를 생성하면 기본적으로 관리자 계정인 SYS와 SYSTEM 계정이 생성되는데 이 계정들은 관리 목적으로 제공되는 것이므로 일반 작업용 계정이 필요하다.
새로운 user를 생성하는 과정은 다음과 같다.
1) 생성할 사용자의 default tablespace를 결정 및 생성
2) 생성할 사용자의 temporary tablespace를 결정 및 생성
3) 사용자를 생성
4) 프로파일, 권한 및 롤 등을 생성한 후 할당
default tablespace를 생성한다.
temporary tablespace를 생성한다.
user를 생성한다.
순서대로 암호 설정, default tablespace 설정, temporary tablespace 설정, 할당량 무제한 지정, system tablesacpe 사용 못하게 설정이다.
권한을 설정해준다.
이렇게 생성을 마치고 나면 다음과 같이 확인해볼 수 있다.
2. PROFILE 관리
profile은 user 계정의 행동에 제약사항을 두기 위해서 사용한다. password와 resource 관련 파라미터가 있는데 다음과 같다.
1) password 관련 파라미터
- failed_login_attemps : login 시도를 실패할 경우 계정을 잠근다.
- password_lock_time : attemps에서 계정이 잠기면 며칠동안 잠글지 기간을 정한다.
- password_life_time : 동일한 암호를 며칠간 사용하게 할 것인지 설정한다. 단위는 일이다.
- password_grace_time : 동일한 암호를 다시 사용할 수 없도록 설정하는 기간이다.
- password_reuse_max : 동일한 암호를 재사용할 경우 최대 사용 가능 횟수를 정한다.
- password_verify_function : 암호를 복잡하게 만들기 위해 특정 함수를 적용시킨다.
2) resource 관련 파라미터
- CPU_PER_SESSION : 하나의 SESSION이 CPU를 연속적으로 사용할 수 있는 최대 시간
- SESSIONS_PER_USER : 하나의 사용자 계정으로 몇 명의 사용자가 동시에 접속할 수 있는지 설정
- CONNECT_TIME : 하루 동안 DB Server에 접속할 수 있는 총 시간
- IDLE_TIME : 휴면 시간이 이 값을 넘으면 접속을 해제한다. 접속 해재시 하고 있던 작업 중 commit이 안 된 작업은 전부 rollback되니 주의해야한다.
- LOGICAL_READS_PER_SESSION : 한 session에 사용 가능한 최대 블록 수
- PRIVATE_SGA : 해당 session의 SGA 사용량을 bytes단위로 설정
- CPU_PER_CALL : 하나의 call 당 cpu를 점유할 수 있는 시간
- LOGICAL_READS_PER_CALL : 하나의 call 당 읽을 수 있는 블록의 개수
각 profile들은 위와 같이 생성할 수 있다.
생성한 profile은 위와 같이 확인해볼 수 있다.
profile을 적용시킨 모습. 하나의 profile만 설정됨을 알 수 있다.
profile을 삭제할 수 있다. 단, 사용중인 profile은 cascade옵션을 줘야만 삭제할 수 있다.
3. PRIVILEGE 관리
profile과는 반대로 privilege는 user에게 어떤 것들을 할 수 있게 허락해주는 것을 목적으로 한다.
privilege는 크게 system 관련과 object 관련으로 나뉜다.
system 관련은 system 전체에 영향을 주는 권한들이며 object 관련은 특정 object에 관련된 1 권한들이다. 2
system 관련 권한 할당 및 해제는 위와 같다.
사용자가 가지고 있는 권한의 조회는 위와 같다.
object 관련 권할 할당 및 해제는 위와 같다.
system 관련에서 권한 위임은 with admin option을 사용해서 할 수 있다. 예를 들어 A사용자에게 위 옵션을 주면 A가 B에게 권한을 줄 수 있으며 A의 권한을 해제해도 B의 권한은 유지된다.
반면 object에서 권한 위임은 with grant option을 사용하며 A의 권한 해제 시 B의 권한도 해제된다.
4. ROLE 관리
grant를 이용해서 권한을 하나하나 매번 할당하기에는 힘들기 때문에 role을 이용해서 그룹을 만들어준다.
위와 같이 role의 생성 및 권한을 할당할 수 있으며 사용자(scott)에게도 할당할 수 있다.
어떤 사용자가 어떤 role을 사용하는지 확인할 수 있다.
어떤 role에 어떤 권한이 있는지도 확인할 수 있다.
'오라클 > 이론 및 실습' 카테고리의 다른 글
Oracle Net Service(1) - Listener (0) | 2019.07.10 |
---|---|
DBMS_JOB & DBMS_SCHEDULER (0) | 2019.07.04 |
버전별 메모리 관리 기법 (0) | 2019.07.02 |
Oracle 저장 구조 - Extent와 Segment (0) | 2019.07.02 |
Oracle 저장 구조 - block(2) (0) | 2019.07.02 |