새싹 DBA/Scripts

[오라클] 유저 패스워드 조회

LIMMI 2024. 12. 30. 11:24


DBA 작업 시 계정 status 가 만료예정인 계정에 대해 password 교체 작업을 진행해줘야 한다. 
비밀번호를 알고 있다면 다행이지만, 모르는 경우 아래와 같이 조회, 실행하여 조치할 수 있다. 
 
1. 만료 예정인 계정 조회

SELECT *
  FROM DBA_USERS
 WHERE ACCOUNT_STATUS ='EXPIRED(GRACE)'
 ORDER BY CREATED DESC;

 
2. 유저 정보 DDL을 가져오는 쿼리 추출 ( 스킵 후 3번 으로 각각 실행도 가능 )

SELECT 'SELECT DBMS_LOB.SUBSTR(DBMS_METADATA.GET_DDL(''USER'','''||USERNAME||'''),1000) FROM DUAL' PWD
  FROM DBA_USERS
 WHERE ACCOUNT_STATUS = 'EXPIRED(GRACE)';

 
3. 2번에서 추출된 USER DDL 가져오는 쿼리 실행

SELECT DBMS_LOB.SUBSTR(DBMS_METADATA.GET_DDL('USER','DBADM'),1000) FROM DUAL;

 오라클 내부 암호화로 현재 사용중인 암호를 암호화하여 추출한다. 
 나의 경우 PASSWORD 만 필요하기에 CREATE USER ~~~ 로 추출된 결과에서 CREATE 를 ALTER 로 바꿔주었다.