パスワードを変更する
PASSWORD は接続中のユーザー、または、任意のユーザーのパスワードを対話的に変更するためのコマンド
PASSWORD コマンド
PASSWORD コマンドの構文
PASSWORD [ユーザー名]
短縮形
PASSW [ユーザー名]
デフォルトのユーザーは接続中のユーザー自身となる。パスワードの入力は必ず対話的なインターフェイスから指定する必要がある。
パスワードを変更する
自分のパスワードの変更
SQL> conn rivus/rivus_pass
SQL> password
RIVUSに対するパスワードを変更しています。
旧パスワード:
新規パスワード:
新規パスワードを再入力してください:
パスワードが変更されました。
SQL>
他のユーザーのパスワードを変更する
他のユーザーのパスワードの変更する場合にはユーザーを管理する ALTER USER システム権限を含むロールなどが必要。
他のユーザーのパスワード変更には旧パスワードの入力は不要。
SQL> conn / as sysdba
接続されました。
SQL> password rivus
rivusに対するパスワードを変更しています。
新規パスワード:
新規パスワードを再入力してください:
パスワードが変更されました。
SQL>
パスワードとケースセンシティブ
Oracle 10g はパスワードは ケースインセンシティブである。(そのため機能比較などにおいてパスワードが脆弱と指摘されることがある)
ケースセンシティブ (Case sensitive) とは大文字と小文字(Case) の違いに反応する (Sensitive) か しない (Insensitive) かで Oracle 11g からは SEC_CASE_SENSITIVE_LOGON 初期化パラメータ により大文字小文字の区別のあり/なし設定することが可能。デフォルトで区別あり:有効(TRUE)になっている(※)。
大文字・小文字を区別しないようにする。
SQL> conn / as sysdba
接続されました。
SQL> alter system set SEC_CASE_SENSITIVE_LOGON=false;
システムが変更されました。
(※) 互換性を保つためユーザー単位にパスワードの適用バージョンを管理している。
旧バージョンからユーザーをインポートした場合には大文字小文字を区別しない状態でインポートされる。ユーザー単位のパスワードのバージョンは USER_USERS / DBA_USERS ビューに追加された PASSWORD_VERSIONS カラムを見れば判別できる。
PASSWORD_VERSIONS に 11g が含まれ SEC_CASE_SENSITIVE_LOGON が TRUE であればパスワードの大文字小文字が区別されているということになる。
また Oracle 11g から デフォルト・プロファイル が変更されている。個人や開発テスト環境などの場合には以下のように無制限に変更してしまってもよいだろう。
alter profile DEFAULT limit
FAILED_LOGIN_ATTEMPTS unlimited
PASSWORD_LIFE_TIME unlimited
PASSWORD_LOCK_TIME unlimited
PASSWORD_GRACE_TIME unlimited ;
SQL によるパスワードの変更
ALTER USER user_name IDENTIFIED BY "new_password" [replace "old_pass"];
SQL> conn / as sysdba
SQL alter user rivus identified by "rivus_new_pass";
ユーザーが変更されました。
SQL>