alter user 文で sys のパスワードを変更してはいけない
Oracle Database の話です。
日々の運用の中で、SYS ユーザのパスワードを変更することがあるかと思います。
一般的にパスワードを変更する場合は、以下のDDL文を発行します。
SQL>ALTER USER username IDENTIFIED BY "new_password";
しかし、ユーザが sys の場合は注意しなければなりません。
以下、マニュアルより引用。
Oracle Databaseセキュリティ・ガイド 11gリリース2 (11.2) B56285-12
マニュアルには、ALTER USER文を使用して、SYSのパスワードを変更するなと書いているだけで、実際は変更できます。
個人的に作ったDBであれば、問題が発生しても気にならないでしょうが、大規模システムを扱っている場合は注意が必要です。
ちなみに上記は、11gのマニュアルですが、12cのマニュアルにも同様のことが書かれていたので、バージョンに関係はないようです。
(追記)
別のマニュアルをみると、「ALTER USER文を使用してSYSパスワードを変更します」と書いてあり内容が矛盾していました。
以下、マニュアルより
Oracle Database管理者ガイド 11gリリース2 (11.2) B56301-08
管理者パスワードとデータ・ディクショナリとの同期の維持
REMOTE_LOGIN_PASSWORDFILE初期化パラメータをNONEからEXCLUSIVEまたはSHAREDに変更した場合、または別のSYSパスワードを使用してパスワード・ファイルを再作成した場合、データ・ディクショナリ内のパスワードとSYSユーザーのパスワード・ファイルが同じになるようにする必要があります。SYSパスワードを同期化するには、ALTER USER文を使用してSYSパスワードを変更します。ALTER USER文により、ディクショナリとパスワード・ファイルのパスワードは更新されて同期化されます。
https://docs.oracle.com/cd/E16338_01/server.112/b56301/dba.htm#i1006853
どちらの、マニュアルも正しいことを書いていると思うので、何らかの解釈の違いがあるのか。
詳しい人に見解を聞きたいところ。
おわり。