TOOL/DATABASE 2017. 4. 6. 17:07

!markdown



# Oracle (오라클)


### 계정상태(만료, 잠김) 확인


처음 겪는다면 조금 당황할 수 있겠지만, 오라클 시스템에는 계정관리 정책이 존재한다.

다음과 같은 정책에 따라서 계정에 접속하지 못하는 경우가 발생한다.

- 비밀번호를 여러번 틀렸을때 계정 잠금(LOCK)

- 한동안 비밀번호를 변경하지 않았을 때, 암호변경기간만료(EXPIRED)

- 비정상적인 무언가가 있었을 경우, 잠금(LOCK)

- 등... 



DBA권한이 있는 계정으로 다음 쿼리를 조회해본다.


```sql

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

----- 계정상태 확인 

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

-- 조치가 필요한(만료 or 잠김) 계정 확인

select * from dba_users where ACCOUNT_STATUS != 'OPEN'

;

```



### 계정, 접속가능 상태로 복구


- 다음 쿼리로 접속이 가능한 상태로 복구할 수 있다.


```sql

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

----- 계정 복구하기

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

-- ACCOUNT_STATUS가 LOCKED이면, UNLOCK해준다.

ALTER USER USERNAME ACCOUNT UNLOCK

;


-- ACCOUNT_STATUS가 EXPIRED이면, USERNAME의 PASSWORD를 갱신한다.

alter user USERNAME IDENTIFIED BY PW

;


-- 다시 잠그려면

ALTER USER USERNAME ACCOUNT LOCK

;


-- 확정

commit

;

```



### 암호정책 바꾸기


- 보안이 필요없는 경우 다음과 같이 암호화 정책을 해제한다면, 귀찮은 일을 줄일 수 있다.


```sql

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

----- 암호정책 바꾸기

----- 보안이 필요없는 경우, 정책을 바꾼다.

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

-- 정책 확인하기

select * from dba_profiles where profile = 'DEFAULT'

;


-- 암호변경만료기한 없애기

alter profile default limit PASSWORD_LIFE_TIME UNLIMITED

;


-- 암호입력가능횟수 없애기

alter profile default limit FAILED_LOGIN_ATTEMPTS UNLIMITED

;


-- 확정

commit

;

```