Oracle 公式の Docker イメージで Oracle Database を構築すると docker run した時にパスワードが出力されます。(パスワードは下のZ6koiFT2K8A=)
> docker run --name orcl oracle/database:12.1.0.2-ee ORACLE AUTO GENERATED PASSWORD FOR SYS, SYSTEM AND PDBAMIN: Z6koiFT2K8A=
セキュリティ要件を満たすパスワードや自分が憶えやすいパスワードに変更するのではないでしょうか。
また、うっかり見忘れたり、久しぶりに起動したためどんなパスワードを設定したか忘れてしまうこともあるかと思います。
Oracle Database には様々な管理者があるため、自分しか使わない環境でしたら全てのパスワードを同一にしたいところですが個別に変更することが大変だったり、そもそも Oracle Database に詳しくないためパスワードを変える方法が分からなかったりというこもあるでしょう。
Oracle 公式の Docker イメージに含まれてる管理者のパスワードを一括で変更するシェルを使うことで、管理者のパスワードを一括で変更することが出来ます。
次の通り、 orcl という名前の Docker コンテナで Oracle Database が動いているものとします。
> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5712e265f393 oracle/database:12.1.0.2-ee "/bin/sh -c $ORACLE_B" 8 hours ago Up 7 hours 0.0.0.0:1521->1521/tcp orcl
パスワードの設定は、ワークディレクトリにある setPassword.sh を使用して、第一引数にパスワードを与えることで設定できます。今回の例ではパスワードとして pAssw0rd を指定します。
> docker exec orcl ./setPassword.sh pAssw0rd The Oracle base remains unchanged with value /opt/oracle SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 28 15:09:24 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> User altered. SQL> User altered. SQL> Session altered. SQL> User altered. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
これだけでパスワードの設定変更は完了です。確認のためユーザ名に sys、パスワードに新しく設定したパスワード、ロールに SYSDBA 権限を選択してデータベースサーバへログインしてみてください。