행위

"오라클 프로파일"의 두 판 사이의 차이

DB CAFE

(PROFILE 생성)
(PASSWORD PROFILE 관련 파라미터)
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
26번째 줄: 26번째 줄:
 
예를 들어 5분 이상 활동이 없으면 접속을 강제 종료,1개월마다 암호를 다른 것으로 바꾸게 강제 적용.
 
예를 들어 5분 이상 활동이 없으면 접속을 강제 종료,1개월마다 암호를 다른 것으로 바꾸게 강제 적용.
  
1) PASSWORD PROFILE 관련 파라미터
+
=== PASSWORD PROFILE 관련 파라미터 ===
 
+
* FAILED_LOGIN_ATTEMPTS
(1) FAILED_LOGIN_ATTEMPTS : 설정된 횟수만큼 로그인 시도 실패시 계정 잠금.
+
: : 설정된 횟수만큼 로그인 시도 실패시 계정 잠금.
 
 
 
예를 들어 failed_login_attemps 3 이렇게 하면 3번 실패하면 4번째부턴 로그인 못한다는 의미.
 
예를 들어 failed_login_attemps 3 이렇게 하면 3번 실패하면 4번째부턴 로그인 못한다는 의미.
  
(2) PASSWORD_LOCK_TIME : 위 1번 에서 계정이 잠기면 '''며칠 동안 잠글 것 인지''' 기간을 정하는 파라미터.  
+
* PASSWORD_LOCK_TIME  
 +
: : 위 1번 에서 계정이 잠기면 '''며칠 동안 잠글 것 인지''' 기간을 정하는 파라미터.  
 
단위는 일(DAY)
 
단위는 일(DAY)
  
(3) PASSWORD_LIFE_TIME : 동일한 암호를 며칠간 사용하게 할 것인지 설정하는 파라미터.  
+
* PASSWORD_LIFE_TIME  
 +
: : 동일한 암호를 며칠간 사용하게 할 것인지 설정하는 파라미터.  
 
단위는 일(DAY)
 
단위는 일(DAY)
 
이 기간이 지나도 안 바꾸면 다음 로그인할 때 강제로 바꾸게 프롬프트를 보여줌.
 
이 기간이 지나도 안 바꾸면 다음 로그인할 때 강제로 바꾸게 프롬프트를 보여줌.
  
(4) PASSWORD_GRACE_TIME : 패스워드 만료 날짜가 가까워 졌음을 미리 알려 주는 기간.
+
* PASSWORD_GRACE_TIME  
 +
: : 패스워드 만료 날짜가 가까워 졌음을 미리 알려 주는 기간.
 
단위는 일(DAY)
 
단위는 일(DAY)
  
(5) PASSWORD_REUSE_TIME : 현재 패스워드를 설정된 기간동안  다시 사용할 수 없도록 설정.  
+
* PASSWORD_REUSE_TIME  
 +
: : 현재 패스워드를 설정된 기간동안  다시 사용할 수 없도록 설정.  
 
단위는 일(DAY)
 
단위는 일(DAY)
 
즉 암호를 변경하라고 했는데 사용자가 동일한 암호를 다시 사용 시 쓸 수 없게 만들어야 할 때 사용.
 
즉 암호를 변경하라고 했는데 사용자가 동일한 암호를 다시 사용 시 쓸 수 없게 만들어야 할 때 사용.
  
(6) PASSWORD_REUSE_MAX :
+
* PASSWORD_REUSE_MAX  
암호 설정 시 지정한 횟수만큼 다른 패스워드를 사용해야 함.(이전 패스워드를 재사용못하도록 설정)
+
: : 암호 설정 시 지정한 횟수만큼 다른 패스워드를 사용해야 함.(이전 패스워드를 재사용못하도록 설정)
  
(7) PASSWORD_VERIFY_FUNCTION :
+
* PASSWORD_VERIFY_FUNCTION  
암호를 보다 복잡하게 만들기 위해서 특정 함수를 적용시켜 사용자의 암호를 점검합니다.  
+
: :암호를 보다 복잡하게 만들기 위해서 특정 함수를 적용시켜 사용자의 암호를 점검합니다.  
 
오라클 제공 함수 verify_function 을 사용할 수 있고 사용자가 별도의 함수를 만들어서 적용할 수도 있음.  
 
오라클 제공 함수 verify_function 을 사용할 수 있고 사용자가 별도의 함수를 만들어서 적용할 수도 있음.  
  
58번째 줄: 61번째 줄:
 
* 암호는 하나의 특수문자나, 알파벳 , 숫자가 포함.
 
* 암호는 하나의 특수문자나, 알파벳 , 숫자가 포함.
 
* 암호는 이전 암호와 3글자 이상 다르게.
 
* 암호는 이전 암호와 3글자 이상 다르게.
 
+
{{틀:고지상자2
* 예제 1. Password 관련 PROFILE 생성하기
+
|제목= 예제 1. Password 관련 PROFILE 생성하기
- 조건 1: 로그인 시도 3회 실패 시 계정을 5일 동안 사용 못하게 할 것
+
|내용=# 조건 1: 로그인 시도 3회 실패 시 계정을 5일 동안 사용 못하게 할 것
 
+
# 조건 2: 계정의 암호는 15일에 한번씩 변경하게 할 것
- 조건 2: 계정의 암호는 15일에 한번씩 변경하게 할 것
+
# 조건 3: 동일한 암호는 15일 동안 사용 못하게 할 것
 
 
- 조건 3: 동일한 암호는 15일 동안 사용 못하게 할 것
 
 
 
 
<source lang=sql>
 
<source lang=sql>
 
-- 프로파일 생성
 
-- 프로파일 생성
79번째 줄: 79번째 줄:
 
;
 
;
 
</source>
 
</source>
+
}}
  
2) RESOURCE PROFILE 관련 파라미터
+
=== RESOURCE PROFILE 관련 파라미터 ===
 
CPU 와 메모리 관련된 부분 제어.
 
CPU 와 메모리 관련된 부분 제어.
  

2024년 6월 28일 (금) 08:59 기준 최신판

thumb_up 추천메뉴 바로가기


1 프로파일[편집]

Resource Description
CPU_PER_SESSION 1/100 초 단위로 측정한 총 CPU이용시간
CONNECT_TIME 분 단위로 측정한, 경과된 접속시간
IDLE_TIME 분 단위로 측정한 비활동 시간 : 서버 프로세스에 대해서만 IDLE_TIME 계산.응용프로그램 작업은 포함되지 않음.

IDLE_TIME은 오랜시간 수행되는 질의나 다른 작업들은 포함하지 않음.

LOGICAL_READS_PER_SESSION 데이터 블록 수 (물리적:디스크로부터,논리적:메모리로부터 읽은): LOGICAL_READS_PER_SESSION은 메모리와 디스크 모두 에게서 읽는 총 횟수를 제한.
PRIVATE_SGA 바이트 단위로 측정한 SGA 내의 전용(private) 공간(MTS만) : PRIVATE_SGA는 다중 스레드 서버(MTS) 구성 일 때만 적용 .

1.1 PROFILE 조회[편집]

SELECT *
  FROM DBA_PROFILES;

1.2 PROFILE 생성[편집]

PROFILE 은 사용자 계정의 행동에 제약사항 적용. 예를 들어 5분 이상 활동이 없으면 접속을 강제 종료,1개월마다 암호를 다른 것으로 바꾸게 강제 적용.

1.2.1 PASSWORD PROFILE 관련 파라미터[편집]

  • FAILED_LOGIN_ATTEMPTS
 : 설정된 횟수만큼 로그인 시도 실패시 계정 잠금.

예를 들어 failed_login_attemps 3 이렇게 하면 3번 실패하면 4번째부턴 로그인 못한다는 의미.

  • PASSWORD_LOCK_TIME
 : 위 1번 에서 계정이 잠기면 며칠 동안 잠글 것 인지 기간을 정하는 파라미터.

단위는 일(DAY)

  • PASSWORD_LIFE_TIME
 : 동일한 암호를 며칠간 사용하게 할 것인지 설정하는 파라미터.

단위는 일(DAY) 이 기간이 지나도 안 바꾸면 다음 로그인할 때 강제로 바꾸게 프롬프트를 보여줌.

  • PASSWORD_GRACE_TIME
 : 패스워드 만료 날짜가 가까워 졌음을 미리 알려 주는 기간.

단위는 일(DAY)

  • PASSWORD_REUSE_TIME
 : 현재 패스워드를 설정된 기간동안 다시 사용할 수 없도록 설정.

단위는 일(DAY) 즉 암호를 변경하라고 했는데 사용자가 동일한 암호를 다시 사용 시 쓸 수 없게 만들어야 할 때 사용.

  • PASSWORD_REUSE_MAX
 : 암호 설정 시 지정한 횟수만큼 다른 패스워드를 사용해야 함.(이전 패스워드를 재사용못하도록 설정)
  • PASSWORD_VERIFY_FUNCTION
 :암호를 보다 복잡하게 만들기 위해서 특정 함수를 적용시켜 사용자의 암호를 점검합니다.

오라클 제공 함수 verify_function 을 사용할 수 있고 사용자가 별도의 함수를 만들어서 적용할 수도 있음.

verify_function 함수를 이용할 경우

  • 암호는 최소한 4글자 이상 .
  • 암호는 사용자 계정과 다르게.
  • 암호는 하나의 특수문자나, 알파벳 , 숫자가 포함.
  • 암호는 이전 암호와 3글자 이상 다르게.
notifications_active 예제 1. Password 관련 PROFILE 생성하기
  1. 조건 1: 로그인 시도 3회 실패 시 계정을 5일 동안 사용 못하게 할 것
  2. 조건 2: 계정의 암호는 15일에 한번씩 변경하게 할 것
  3. 조건 3: 동일한 암호는 15일 동안 사용 못하게 할 것
-- 프로파일 생성
CREATE PROFILE DEV_PROF LIMIT 
          IDLE_TIME 10
          FAILED_LOGIN_ATTEMPTS 6
          PASSWORD_LIFE_TIME 90
          PASSWORD_REUSE_TIME UNLIMITED
          PASSWORD_REUSE_MAX 4
          PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION
          PASSWORD_LOCK_TIME 1
          PASSWORD_GRACE_TIME 7
;

1.2.2 RESOURCE PROFILE 관련 파라미터[편집]

CPU 와 메모리 관련된 부분 제어.

이 PROFILE 을 사용하려면 RESOURCE_LIMIT = true 로 설정.

ORACLE이 시작될 때 사용되는 parameter file(Pfile / SPfile) 에 위 문장을 적어 놓거나 또는 지금 즉시 적용시키고 싶으면 9i 이상 버전일 경우엔

ALTER SYSTEM SET RESOURCE_LIMIT = true;

를 실행하시면 됩니다

(1) CPU_PER_SESSION : 하나의 세션이 CPU를 연속적으로 사용할 수 있는 최대 시간. 무한루프 같은 쿼리가 작동되면 혼자서 CPU를 연속적으로 점유. 이 설정을 사용하여 차단 1/100초 단위.

(2) SESSIONS_PER_USER : 하나의 사용자 계정으로 몇 명의 사용자가 동시에 접속 할 수 있는지를 설정.

(3) CONNECT_TIME : 하루 동안 DB Server에 접속을 허락하는 총 시간을 설정.(단위는 분입니다)

(4) IDLE_TIME : 지정 IDLE TIME 이후 접속을 해제. 예를 들어 IDLE_TIME 5 , 5분 동안 활동이 없는 세션은 강제로 접속종료.

(5) LOGICAL_READS_PER_SESSION : 한 session 에서 사용 가능한 최대 block 수를 지정합니다.

(6) PRIVATE_SGA :MTS / SHARED SERVER 일 경우 해당 session의 SGA 사용량을 bytes 단위로 설정.

(7) CPU_PER_CALL : 하나의 call 당 cpu를 점유할 수 있는 시간이며 1/100초 단위입니다.

(8) LOGICAL_READS_PER_CALL : 하나의 call 당 읽을 수 있는 block의 개수 지정.

예제 2: RESOURCE 관련 PROFILE 만들기

SYS>ALTER SYSTEM SET RESOURCE_LIMIT=true ;

- 조건 1: 1명당 연속적으로 CPU를 사용할 수 있는 시간을 10초로 제한할 것. - 조건 2: 하루 중 8시간만 DB에 접속 가능하게 할 것. - 조건 3: 10분 동안 사용하지 않으면 강제로 접속을 끊을 것.

SYS>CREATE PROFILE RE_SAMPLE_PROF LIMIT
 CPU_PER_SESSION 1000
 CONNECT_TIME 480
 IDLE_TIME 10 ;

3) 사용자에게 PROFILE 할당하기 여기에서는 위의 예제 1번과 2번에서 만든 PROFILE 을 scott 에게 설정하겠습니다. (1) 현재 모든 사용자가 적용 받고 있는 PROFILE 확인하기

SYS>SELECT username "사용자명" , profile "적용 프로파일"
 FROM dba_users
 WHERE username=’SCOTT’ ;


사용자명 적용 프로파일


-----------------------------

SCOTT DEFAULT

(2) 해당 PROFILE 에 어떤 내용이 있는지 확인하기 - 위에서 만든 sample_prof 의 내용을 조회하겠습니다.

SYS>SELECT * FROM dba_profiles
 WHERE PROFILE='SAMPLE_PROF' ;
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------ -------------------------------------- ---------------- --------------
SAMPLE_PROF COMPOSITE_LIMIT KERNEL DEFAULT
SAMPLE_PROF SESSIONS_PER_USER KERNEL DEFAULT
SAMPLE_PROF CPU_PER_SESSION KERNEL DEFAULT
SAMPLE_PROF CPU_PER_CALL KERNEL DEFAULT
SAMPLE_PROF LOGICAL_READS_PER_SESSION KERNEL DEFAULT
SAMPLE_PROF LOGICAL_READS_PER_CALL KERNEL DEFAULT
SAMPLE_PROF IDLE_TIME KERNEL DEFAULT
SAMPLE_PROF CONNECT_TIME KERNEL DEFAULT
SAMPLE_PROF PRIVATE_SGA KERNEL DEFAULT
SAMPLE_PROF FAILED_LOGIN_ATTEMPTS PASSWORD 3
SAMPLE_PROF PASSWORD_LIFE_TIME PASSWORD 15
SAMPLE_PROF PASSWORD_REUSE_TIME PASSWORD 15
SAMPLE_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
SAMPLE_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
SAMPLE_PROF PASSWORD_LOCK_TIME PASSWORD 5
SAMPLE_PROF PASSWORD_GRACE_TIME PASSWORD DEFAULT
16 rows selected.
- 위에서 만든 re_sample_prof 의 내용을 조회하겠습니다.
SELECT * FROM dba_profiles
 WHERE profile='RE_SAMPLE_PROF' ;
PROFILE RESOURCE_NAME RESOURCE LIMIT
--------------------- ------------------------------------- --------------- ------------
RE_SAMPLE_PROF COMPOSITE_LIMIT KERNEL DEFAULT
RE_SAMPLE_PROF SESSIONS_PER_USER KERNEL DEFAULT
RE_SAMPLE_PROF CPU_PER_SESSION KERNEL 1000
RE_SAMPLE_PROF CPU_PER_CALL KERNEL DEFAULT
RE_SAMPLE_PROF LOGICAL_READS_PER_SESSION KERNEL DEFAULT
RE_SAMPLE_PROF LOGICAL_READS_PER_CALL KERNEL DEFAULT
RE_SAMPLE_PROF IDLE_TIME KERNEL 10
RE_SAMPLE_PROF CONNECT_TIME KERNEL 480
RE_SAMPLE_PROF PRIVATE_SGA KERNEL DEFAULT
RE_SAMPLE_PROF FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
RE_SAMPLE_PROF PASSWORD_LIFE_TIME PASSWORD DEFAULT
RE_SAMPLE_PROF PASSWORD_REUSE_TIME PASSWORD DEFAULT
RE_SAMPLE_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
RE_SAMPLE_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
RE_SAMPLE_PROF PASSWORD_LOCK_TIME PASSWORD DEFAULT
RE_SAMPLE_PROF PASSWORD_GRACE_TIME PASSWORD DEFAULT
16 rows selected.

(3) 사용자에게 PROFILE 적용시키고 확인하기

SYS>ALTER USER scott PROFILE sample_prof;
SYS>ALTER USER scott PROFILE re_sample_prof;

여러 개의 프로파일을 적용 불가.


(4) 사용 안 하는 PROFILE 삭제하기 - 현재 사용 중인 re_sample_prof 프로파일을 삭제.

SYS>DROP PROFILE re_sample_prof;
drop PROFILE re_sample_prof
*
ERROR at line 1:
ORA-02382: PROFILE RE_SAMPLE_PROF has users assigned, cannot drop without
CASCADE

1.3 프로파일 삭제[편집]

SYS>DROP PROFILE re_sample_prof CASCADE;

현재 사용자에게 할당이 되어 있는 PROFILE 은 기본적으로 삭제 안됨. CASCADE 옵션으로 삭제. 해당 프로파일은 DEFAULT PROFILE 사용하게 됨.

1.4 프로파일 생성[편집]

CREATE PROFILE scott_프로파일명 LIMIT
     SESSIONS_PER_USER 2     -- 동시 세션 2명
     CPU_PER_SESSION 10000   
     IDLE_TIME 60            -- 60분 대기 시간 후 세션종료 
     CONNECT_TIME 480;       -- 480분 동안만 작업 가능

1.5 프로파일 수정[편집]

ALTER PROFILE RTIS_DEV LIMIT SESSIONS_PER_USER UNLIMITED; -- 세션 제한 UNLIMITED


1.6 사용자에게 적용[편집]

ALTER USER scott PROFILE scott_프로파일명;