Introduction
Ce document décrit comment déverrouiller le compte d'utilisateur Oracle de Cisco IoT Field Network Director (IoT-FND) et modifier le paramètre d'expiration du mot de passe à illimité.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Opérations de base du shell Linux (afficher les journaux, démarrer un processus, etc.)
- Compréhension de base des requêtes SQL
Components Used
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Ce document suppose que vous avez deux serveurs Linux distincts :
Problème
SYMPTOM 1 : L'IoT-FND ne démarre pas, la vérification de la connexion à la base de données a échoué.
[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.
SYMPTOM 2 : cgms_db_connection_test.log contient des entrées similaires à :
[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
Note: L'application IoT-FND utilise un utilisateur de base de données CGMS_DEV pour accéder à la base de données Oracle.
Remarque : par défaut, l'expiration du mot de passe est activée dans la base de données Oracle, de sorte qu'après un certain temps, les mots de passe du compte ont expiré et qu'il n'est pas possible de les utiliser sans modifier le mot de passe.
SYMPTOM 3 : Le statut du compte utilisateur Oracle CGMS_DEV est défini sur 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
Solution
Étape 1. Connectez-vous au serveur IoT-FND avec SSH.
Étape 2. Arrêter les services FND.
[root@IoT-FND-SRV]$ service cgms stop
Remarque : si vous n'arrêtez pas les services IoT-FND, FND tentera de se connecter à la base de données à l'aide d'un ancien mot de passe et le compte sera bloqué jusqu'à ce que vous ayez terminé cette procédure.
Étape 3. Connectez-vous au serveur Oracle avec SSH.
Étape 4. Basculer vers oracle system user :
[root@IoT-FND-Oracle]$ su - oracle
[oracle@IoT-FND-Oracle]$
Étape 5. Connectez-vous à l'instance racine de la base de données Oracle en tant qu'utilisateur sysdba :
[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>
Étape 6. Modifiez le paramètre password_life_limit à illimité :
sql> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Profile altered.
Étape 7. Vérifiez quels comptes ont des mots de passe expirés.
SQL> SELECT USERNAME,ACCOUNT_STATUS FROM DBA_USERS WHERE ACCOUNT_STATUS='EXPIRED';
USERNAME
--------------------------------------------------------------------------------
ACCOUNT_STATUS
--------------------------------
CGMSDBA
OPEN
CGMS_DEV
EXPIRED
Étape 8. Définir le mot de passe de l'utilisateur CGMS_DEV :
sql> ALTER USER CGMS_DEV IDENTIFIED BY
;
User altered.
Note : Si vous connaissez l'ancien mot de passe, vous pouvez le réutiliser. Si non, vous devez exécuter le script cgmsSetup.sh sur le serveur IoT-FND pour modifier les mots de passe de base de données définis dans FND.
Étape 9. Déverrouiller le compte utilisateur CGMS_DEV :
SQL> ALTER USER CGMS_DEV ACCOUNT UNLOCK;
User altered.
Étape 10. Vérifiez l'état du compte des utilisateurs CGMS_ :
SQL> SELECT USERNAME,ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME LIKE 'cg%';
USERNAME
--------------------------------------------------------------------------------
ACCOUNT_STATUS
--------------------------------
CGMSDBA
OPEN
CGMS_DEV
OPEN
Étape 11. Connectez-vous au serveur IoT-FND avec SSH.
Étape 12. Démarrez le script /opt/cgms/bin/setupCgms.sh pour modifier le paramètre de mot de passe de la base de données. Laissez les valeurs par défaut de tous les autres paramètres :
[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 ==========
Étape 13. Vérifier la connectivité de la base de données :
[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.
Étape 14. Démarrer l'application IoT-FND :
[root@IoT-FND-SRV ~]# service cgms start
Étape 15. Vérifier le fonctionnement de l'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.