ORACLE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋ง์ ๊ณ์ ์ ๋ณด๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์์ฑ๋ ๊ณ์ ๋ค์ ์ฌ์ฉ์ฃผ๊ธฐ๊ฐ ๋ฌด์ ํ์ด ์๋๊ธฐ ๋๋ฌธ์ 6๊ฐ์์ ์ ์ ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋ฃ๋์ ์ ์์ด ๋ถ๊ฐ๋ฅํ ์ํ๋ก ์ ํ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ORACLE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋น๋ฐ๋ฒํธ ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋๊ธฐ ์ผ์ฃผ์ผ ์ ๋ถํฐ ๋ง๋ฃ ๊ธฐํ์ด ๋๋๋์๋ค๋ผ๋ ์๋ฆผ ๋ฉ์ธ์ง๋ฅผ ์ค๋ผํด์์ ์ ๊ณตํด์ค๋๋ค. ๊ทธ๋์ ์ค๋์ ์ฌ์ฉ์ค์ธ ORACLE ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ์ ํจ๊ธฐ๊ฐ์ ๋ค์ ์ด๊ธฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๊ณ ์ ํฉ๋๋ค.
ORA-28098 ERROR๋?
ORA-28098 ์๋ฌ๋ ์ค๋ผํด ๊ณต์ ํํ์ด์ง ๋์๋ง ์ผํฐ์์ ์๋์ ๊ฐ์ด ์ ์ํ๊ณ ์์ต๋๋ค.
ORA-28098 - Database Error Messages
ORA-28098 Profile limits PASSWORD_LIFE_TIME and PASSWORD_GRACE_TIME are not unlimited, password will expire within string days. Cause The password of the user's account expired and entered the grace period and should be changed. This can happen if any of t
docs.oracle.com
์์ธ
์ฌ์ฉ์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋ฃ๋์ด ์ ์ ๊ธฐ๊ฐ์ด ์์๋์์ผ๋ฏ๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ๋ค์ ์ค ํ๋๋ผ๋ ํด๋นํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ๊ณ์ ์ ์ ํ๋ PASSWORD_LIFE_TIME๊ณผ 0์ด ์๋ PASSWORD_GRACE_TIME์ ๊ฐ๋ ๋น๋ฐ๋ฒํธ ํ๋กํ๊ณผ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
- ์ฌ์ฉ์ ๊ณ์ ์ ํ๋ฌ๊ทธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(PDB) ๋ด๋ถ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ธ์ค๊ธฐ ๋๋ ๊ธฐ์กด PDB ๋ณต์ ์ ์ผ๋ถ๋ก ์์ฑ๋์์ผ๋ฉฐ, ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ PDB์ ์ ์ฉ๋๋ ํ์ ํ๋กํ(์ ํ๋ ๋น๋ฐ๋ฒํธ ์ ์ ๊ธฐ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋จ)์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ์์ต๋๋ค. ๋น๋ฐ๋ฒํธ ์ ์ ๊ธฐ๊ฐ์ด ์์ง ๋ง๋ฃ๋์ง ์์์ผ๋ฏ๋ก ์ฌ์ฉ์์๊ฒ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋์ง ์์ผ๋ฉฐ, ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝ ํ ๋๊น์ง ์ฌ์ฉ์ ๊ณ์ ์ ์ฑ๊ณต์ ์ผ๋ก ๋ก๊ทธ์ธ ํ ๋๋ง๋ค ORA-28098 ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ๊ณ์ ํ์๋ฉ๋๋ค. ์ ์ ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋ฃ๋๊ณ , ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ณ๊ฒฝํ ๋๊น์ง ๋ก๊ทธ์ธ์ ORA-28001 ์ค๋ฅ์ ํจ๊ฒ ๊ณ์ ์คํจํฉ๋๋ค.
ํ๋
๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ฌ ํ์ ํ๋กํ์ ์ค์ํ๋ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํํ๊ธฐ ์ํ ๊ท์น์ ์์๋ณด์ธ์.
๋น๋ฐ๋ฒํธ ์ฌ์ฉ ์๊ฐ ์ฃผ๊ธฐ ๋ฐ ๊ณ์ ๋ง๋ฃ ์๊ฐ ํ์ธ
์ฌ์ฉ์ค์ธ ORACLE ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด, ๋น๋ฐ๋ฒํธ ์๊ฐ ์ฃผ๊ธฐ๋ฅผ ํ์ธํฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉ์ค์ธ ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ธํ๊ธฐ ์ํ TOOL์ ์คํํฉ๋๋ค. ํ์๋ SqlDeveloper๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. Developer Tool์ ์คํ ํ ์์คํ ๊ณ์ ์ผ๋ก ์ ์ ํ, ์๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ค๋๋ค.
select expiry_date, created, username from dba_users;
์คํ ํ, 'RESOURCE_NAME' ํญ๋ชฉ์์ 'PASSWORD_LIFE_TIME' ์ ์ฐพ์๋ณด๋ฉด LIMIT์ ๊ธฐํ์ด 6๊ฐ์๋ก ์ค์ ๋์ด ์๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ 6๊ฐ์์ด ์ง๋๋ฉด ๋น๋ฐ๋ฒํธ ๋ง๋ฃ ๊ธฐ๊ฐ์ด ๋๋ํ๊ณ ์์ด์ ์ฌ์ค์ ์ ํ๊ฑฐ๋ ์๊ฐ ์ ํ์ ์ฌ์ฉํ์ง ์๋๋ก ์ค์ ์ด ํ์ํฉ๋๋ค.
๋น๋ฐ๋ฒํธ ์๊ฐ ์ฃผ๊ธฐ๋ ํ์ธํ์ผ๋ ์ฌ์ฉ์ค์ธ ๊ณ์ ์ ์ฌ์ฉ์ผ์ ํ์ธํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์๋ ์ฟผ๋ฆฌ๋ฅผ ์คํ ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ด ์๋ค.
select expiry_date, created, username from dba_users where username = 'BOOT';
ํด๋น ์ฟผ๋ฆฌ์์ expiry_date๋ ๋ง๋ฃ์ผ์, created๋ ์์ฑ์ผ์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ username์ ์ฌ์ฉ์ค์ธ ๊ณ์ ์ ์ด๋ฆ์ ๋ํ๋ ๋๋ค. ํ์๊ฐ ๊ฒ์๊ธ์ ์์ฑํ ๋ ์ง๊ฐ 25.05.01 ์ด๋ฏ๋ก ์์ง ๋ง๋ฃ๊ฐ ๋๋ ค๋ฉด ํ์ฐธ ๋จ์๋ค๋๊ฑธ ์ ์ ์์ต๋๋ค.
ORA-28098 ERROR ํด๊ฒฐ ๋ฐฉ๋ฒ
๋ฐฉ๋ฒ 1. ์ฌ์ฉ์ค์ธ ๊ณ์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
1. ์ฌ์ฉ์ค์ธ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ alter๋ฌธ์ ์ด์ฉํ์ฌ ์์ ํฉ๋๋ค.
alter user boot identified by 1234;
ํด๋น ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํ๊ณ ์คํํ๋ฉด ์ ์ด๋ฏธ์ง์ฒ๋ผ User BOOT ๊ณ์ ์ด ๋ณ๊ฒฝ๋์๋ค๋ ์๋ฆผ ๋ฉ์์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
2. ๋ณ๊ฒฝํ ๊ณ์ ์ ๋ง๋ฃ ๊ธฐ๊ฐ์ด ์ ์ ์ฉ๋์๋์ง ํ์ธํฉ๋๋ค.
select expiry_date, created, username from dba_users where username = 'BOOT';
์๋์ ๋ง๋ฃ ๊ธฐํ์ 25.10.26์ผ๋ก ์ค์ ๋์ด ์์์ง๋ง alter๋ฅผ ํตํด ์ฌ ์ค์ ํ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ, 25.10.28์ผ๋ก ๋ง๋ฃ ๊ธฐํ์ด ์ฌ์ค์ ๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐฉ๋ฒ 2. ์ฌ์ฉ ์ฃผ๊ธฐ ์ค์ ๋นํ์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๋ฅผ ์์ฑํ๋ฉด ํ๋กํ์ด ์์ฑ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก 'DEFAULT' ํ๋กํ์ ๋๋ค. ํด๋น ํ๋กํ์ CPU, I/O, ๋ฉ๋ชจ๋ฆฌ ์ ํ ๋ฑ ์ฌ๋ฌ ํญ๋ชฉ์ ์ ์ํฉ๋๋ค. (ํ์ง๋ง ์ด๋ฌํ ์ค์ ์๋ Database Resource Manager๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅ) ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ 180์ผ๋ง๋ค ๋ง๋ฃ ๊ธฐํ์ด ์ค์ ๋์ด ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ณด๋ 6๊ฐ์๋ง๋ค ๊ฐฑ์ ํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ๋ฒ๊ฑฐ๋ก์์ ๋์ด์ฃผ๊ธฐ ์ํด ๊ธฐํ ์ค์ ์ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค.
1. ์๋ ์ฟผ๋ฆฌ๋ฅผ ์คํ ํด, ๋น๋ฐ๋ฒํธ ์๊ฐ ์ฃผ๊ธฐ๋ฅผ ๋นํ์ฑํ ํฉ๋๋ค.
alter profile default limit PASSWORD_LIFE_TIME unlimited;
2. ํ๋กํ default์ ๋น๋ฐ๋ฒํธ ์๊ฐ ์ฃผ๊ธฐ๋ฅผ ๋ค์ ํ๋ฒ ํ์ธํฉ๋๋ค.
select resource_name, resource_type, limit from dba_profiles;
๊ธฐ์กด ๋ง๋ฃ ๊ธฐ๊ฐ์ผ๋ก ์ค์ ๋ 180์ผ์ด 'UNLIMITED'๋ก ๋ณ๊ฒฝ๋ ๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
@Junesker