突然現れたORA-28000エラー。もしくは、ORA-01017 invaild username/passwordというメッセージを見たら? system権限だけが頼りになるはずだ。

WindowsでのOracle環境を前提として書いたものである。

アカウントがロックされました!

SQL> conn ID/パスワード
ERROR:
ORA-28000: the account is locked

このようなエラーが発生して、何の動作もできなくなる場合がある。

これは、連続でパスワードを間違ったときにアカウントがロックされるようになったからである。

こういう場合は、システムアカウントに接近して、解除する必要がある。

システムパスワードも知りません!

SQL> conn system
Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied

一難去ってまた一難。この時はsysdba権限が対策として有効だ。

パスワード無しで入れるのが、不思議なことだが、OSでアドミン権限でログインされていれば、動作できるという。

システムの制御を乗っ取られたら、DBも一緒に無くさないように、sysdba権限に対する追加設定があとで必要になりそうだ。

次のようにしたのである。

SQL> conn /as sysdba
Connected.

結構簡単なものだった。

忘れたパスワード、変えらますか?

次に、それぞれのパスワードの設定をしよう。

SQL> alter user system identified by 새로운비밀번호;

User altered.

こういう方法で、新しいパスワードに設定はできる。systemのところに、hrなどアカウントを入れれば、すぐにパスワードは変更できる。

SQL命令と似たような気がする。

そして、ロックはどう解除するつもりですか?

少々お待ちを。はたして、アカウントは本当にロックになっているのか?次の命令でわかることができる。

SQL> select username, account_status, lock_date from dba_users

結果は長いから、わざと載せないようにした。

SQL> alter user hr account unlock;

User altered.

こうやって、hrアカウントのアンロックはできたのだ。

結論

  • パスワードは忘れないこと。
  • ロックにならないように、DBのアクセスも難しくしよう。
  • 絶対アドミンアカウントでOracleコンソールを開けないようにするか、sysdbaのセキュリティ設定を変えよう。