内容

概要

前提条件

要件

使用するコンポーネント

背景説明

問題

解決方法

概要

このドキュメントでは、Cisco IoT Field Network Director(IoT-FND)のOracleユーザアカウントのロックを解除し、パスワードの有効期限を無制限に変更する方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- 基本的なLinuxシェル操作（ログの表示、プロセスの開始など）

- SQLクエリの基本的な知識

使用するコンポーネント

このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

このドキュメントでは、2台のLinuxサーバを使用していることを前提としています。

- IoT-FND-SRV:IoT FNDアプリケーションをホストするサーバ。

- IoT-FND-Oracle:IoT-FNDアプリケーション用のOracleデータベースをホストするサーバ。

問題

症状 1：IoT-FNDが開始されていないため、データベース接続の検証に失敗しました。

[root@IoT-FND-SRV ~]# service cgms status

IoT-FND Version X.X.XX

08-01-2018 15:14:58 CEST: INFO: IoT-FND database server: XX.XX.XX.XX

08-01-2018 15:15:01 CEST: ERROR: IoT-FND database connection verification failed.

08-01-2018 15:15:02 CEST: ERROR: IoT-FND application server is not running.

症状 2：cgms_db_connection_test.logには、次のようなエントリが含まれます。

[root@IoT-FND-SRV ~]# tail -n 50 /opt/cgms/server/cgms/log/cgms_db_connection_test.log

2018-08-01 12:27:22,767:INFO:main:TestDBConnection: Checking database connection. Please wait ...

2018-08-01 12:27:22,856:INFO:main:TestDBConnection: Database URL: jdbc:oracle:thin:@XX.XX.XX.XX:1522:cgms

2018-08-01 12:27:22,856:INFO:main:TestDBConnection: Database user: cgms_dev

2018-08-01 12:27:23,156:ERROR:main:TestDBConnection: Unable to check database connection. Exception:

java.sql.SQLException: ORA-28001: the password has expired

注：IoT-FNDアプリケーションは、CGMS_DEVデータベースユーザを使用してOracleデータベースにアクセスします。

注：  デフォルトでは、Oracleデータベースのパスワード有効期限は有効になっているため、しばらくするとアカウントのパスワードが期限切れになり、パスワードを変更せずに使用することはできません。

症状 3：Oracle CGMS_DEVユーザアカウントのステータスが[EXPIRED]に設定されている。

[oracle@IoT-FND-Oracle]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Aug 1 16:02:25 2018

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> SELECT USERNAME,ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME LIKE 'cg%';

USERNAME

--------------------------------------------------------------------------------

ACCOUNT_STATUS

--------------------------------

CGMSDBA

OPEN

CGMS_DEV

EXPIRED

解決方法

ステップ1:SSHを使用してIoT-FNDサーバにログインします。

ステップ2:FNDサービスを停止します。

[root@IoT-FND-SRV]$ service cgms stop

注:IoT-FNDサービスを停止しない場合、FNDは古いパスワードを使用してデータベースへの接続を試行し、この手順が完了するまでアカウントはブロックされます。

ステップ3:SSHでOracleサーバにログインします。

ステップ4: oracleシステムユーザに切り替えます。

[root@IoT-FND-Oracle]$ su - oracle

[oracle@IoT-FND-Oracle]$

ステップ5: sysdbaユーザーとしてOracleデータベースのルートインスタンスに接続します。

[oracle@IoT-FND-Oracle]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Aug 1 16:19:23 2018

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>

ステップ6: password_life_limit設定をunlimitedに変更します。

sql> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Profile altered.

ステップ7：パスワードが期限切れになっているアカウントを確認します。

SQL> SELECT USERNAME,ACCOUNT_STATUS FROM DBA_USERS WHERE ACCOUNT_STATUS='EXPIRED';

USERNAME

--------------------------------------------------------------------------------

ACCOUNT_STATUS

--------------------------------

CGMSDBA

OPEN

CGMS_DEV

EXPIRED

ステップ8:CGMS_DEVユーザのパスワードを設定します。

sql> ALTER USER CGMS_DEV IDENTIFIED BY

;

User altered.

注：古いパスワードがわかっている場合は、再利用できます。存在しない場合は、IoT-FNDサーバでcgmsSetup.shスクリプトを実行して、FNDで設定されたデータベースパスワードを変更する必要があります。

ステップ9:CGMS_DEVユーザアカウントのロックを解除します。

SQL> ALTER USER CGMS_DEV ACCOUNT UNLOCK;

User altered.

ステップ10:CGMS_ユーザのアカウントステータスを確認してください。

SQL> SELECT USERNAME,ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME LIKE 'cg%';

USERNAME

--------------------------------------------------------------------------------

ACCOUNT_STATUS

--------------------------------

CGMSDBA

OPEN

CGMS_DEV

OPEN

ステップ11:SSHを使用してIoT-FNDサーバにログインします。

ステップ12:/opt/cgms/bin/setupCgms.shスクリプトを起動し、データベースのパスワード設定を変更します。その他の設定はすべてデフォルト値のままにします。

[root@IoT-FND-SRV]# /opt/cgms/bin/setupCgms.sh

08-01-2018 16:40:43 CEST: INFO: ========== IoT-FND Setup Started - 2018-08-01-16-40-43 ==========

08-01-2018 16:40:43 CEST: INFO: Log file: /opt/cgms/bin/../server/cgms/log/cgms_setup.log

Are you sure you want to setup IoT-FND (y/n)? y

08-01-2018 16:40:46 CEST: INFO: User response: y

Do you want to change the database settings (y/n)? y

08-01-2018 16:40:54 CEST: INFO: User response: y

Enter database server hostname or IP [XX.XX.XX.XX]:

08-01-2018 16:40:55 CEST: INFO: Database server: XX.XX.XX.XX

Enter database server port [1522]:

08-01-2018 16:40:57 CEST: INFO: Database server port: 1522

Enter database SID [cgms]:

08-01-2018 16:40:59 CEST: INFO: Database SID: cgms

Do you wish to configure another database server for this IoT-FND ? (y/n)? n

08-01-2018 16:41:02 CEST: INFO: User response: n

08-01-2018 16:41:02 CEST: INFO: Configuring database settings. This may take a while. Please wait ...

08-01-2018 16:41:03 CEST: INFO: Database settings configured.

Do you want to change the database password (y/n)? y

08-01-2018 16:41:06 CEST: INFO: User response: y

Enter database password:

Re-enter database password:

08-01-2018 16:41:10 CEST: INFO: Configuring database password. This may take a while. Please wait ...

08-01-2018 16:41:13 CEST: INFO: Database password configured.

Do you want to change the keystore password (y/n)? n

08-01-2018 16:41:16 CEST: INFO: User response: n

Do you want to change the web application 'root' user password (y/n)? n

08-01-2018 16:41:19 CEST: INFO: User response: n

Do you want to change the FTP settings (y/n)? n

08-01-2018 16:41:22 CEST: INFO: User response: n

Do you want to change router CGDM protocol settings (y/n)? n

08-01-2018 16:41:24 CEST: INFO: User response: n

Do you want to change log file settings)? (y/n)? n

08-01-2018 16:41:25 CEST: INFO: User response: n

08-01-2018 16:41:25 CEST: INFO: ========== IoT-FND Setup Completed Successfully ==========

ステップ13：データベース接続を確認します。

[root@IoT-FND-SRV ~]# service cgms status

IoT-FND Version X.X.X-XXX

08-01-2018 16:46:14 CEST: INFO: IoT-FND database server: XX.XX.XX.XX

08-01-2018 16:46:15 CEST: INFO: IoT-FND database connection verified.

08-01-2018 16:46:15 CEST: ERROR: IoT-FND application server is not running.

ステップ14:IoT-FNDアプリケーションを開始します。

[root@IoT-FND-SRV ~]# service cgms start

ステップ15:IoT-FNDの動作を確認します。

[root@IoT-FND-SRV ~]# service cgms status

IoT-FND Version X.X.X-XXX

08-01-2018 16:49:04 CEST: INFO: IoT-FND database server: XX.XX.XX.XX

08-01-2018 16:49:04 CEST: INFO: IoT-FND database connection verified.

08-01-2018 16:49:05 CEST: INFO: IoT-FND application server is up and running.

08-01-2018 16:49:06 CEST: INFO: IoT-FND is up and running.