こんにちは!土門大貴(daikidomon)です。
Oracle DatabaseではDB作成時にデフォルトでパスワードポリシーが適用され、
一定期間経過するとユーザーがロックされてしまいます。
なおOracle Databaseではプロファイルでパスワードポリシーを管理しており、
プロファイルを変更することでパスワードポリシーを変更することができます。
今回はそんなOracle Databaseのパスワードポリシーを確認方法と変更方法を紹介します。
目次
パスワードプロファイルの確認方法
まずはパスワードプロファイルの確認方法は「DBA_PROFILES」ビューを確認します。
今回の例ではデフォルトプロファイルの「DEFAULT」を確認するようにしています。
set LINES 120
set PAGES 100
set TERM off
clear col
col PROFILE format a15
col RESOURCE_NAME format a30
col RESOURCE_TYPE format a15
col LIMIT format a15
select
PROFILE,
RESOURCE_NAME,
RESOURCE_TYPE,
LIMIT
from DBA_PROFILES
where PROFILE = 'DEFAULT'
order by RESOURCE_TYPE,
RESOURCE_NAME;
ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED;
15行目でプロファイル名を指定してください。 実行結果は以下になります。
SQL> select
2 PROFILE,
3 RESOURCE_NAME,
4 RESOURCE_TYPE,
5 LIMIT
6 from
7 DBA_PROFILES
8 where
9 PROFILE = 'DEFAULT'
10 order by
11 RESOURCE_TYPE,
12 RESOURCE_NAME;
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
--------------- ------------------------------ --------------- ---------------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT INACTIVE_ACCOUNT_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
17行が選択されました。
パスワードプロファイルの確認方法:alter profile
隠しパラメータを変更するには「alter profile」文で行います。
alter profile <プロファイル> LIMIT
FAILED_LOGIN_ATTEMPTS <COUNT> | UNLIMITED
PASSWORD_LOCK_TIME <DAYS> | UNLIMITED
PASSWORD_LIFE_TIME <DAYS> | UNLIMITED
PASSWORD_GRACE_TIME <DAYS> | UNLIMITED;
以下が実行例になります。 今回の例ではデフォルトプロファイルの「DEFAULT」のパスワードポリシーの制限をすべて「UNLIMITED」にする例です。
SQL> ALTER PROFILE DEFAULT LIMIT
2 FAILED_LOGIN_ATTEMPTS UNLIMITED
3 PASSWORD_LOCK_TIME UNLIMITED
4 PASSWORD_LIFE_TIME UNLIMITED
5 PASSWORD_GRACE_TIME UNLIMITED;
プロファイルが変更されました。