During the test on Oracle Database 12c I run into an interesting error respectively Chris Antongini has made me aware of it. If you try to change the password of an Oracle default account on a none CDB with SQL*Plus password
you run into an ORA-00600 [kpdbModAdminPasswdInRoot: not CDB] and of course the password is not changed. Let’s try it with the DBSNMP account.
SQL> show parameter pluggable NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ enable_pluggable_database boolean FALSE SQL> col username for a20 SQL> select username,account_status,password_versions,ORACLE_MAINTAINED from dba_users 2 where username='DBSNMP'; USERNAME ACCOUNT_STATUS PASSWORD_VER O -------------------- -------------------------------- ------------ - DBSNMP EXPIRED & LOCKED 10G 11G Y SQL> conn dbsnmp/dbsnmp ERROR: ORA-28000: the account is locked Warning: You are no longer connected to ORACLE. SQL> conn / as sysdba Connected. SQL> alter user DBSNMP account unlock; User altered. SQL> conn dbsnmp/dbsnmp ERROR: ORA-28001: the password has expired Changing password for dbsnmp New password: Retype new password: ERROR: ORA-00600: internal error code, arguments: [kpdbModAdminPasswdInRoot: not CDB], [], [], [], [], [], [], [], [], [], [], [] Password unchanged Warning: You are no longer connected to ORACLE.
As you can see above the account is expired and locked. After unlocking the account I’ll try to login again and will be asked to set a new password. Doing the same on a container database does work without an ORA-00600.
SQL> show parameter pluggable NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ enable_pluggable_database boolean TRUE SQL> col username for a20 SQL> select username,account_status,password_versions,ORACLE_MAINTAINED from dba_users 2 where username='DBSNMP'; USERNAME ACCOUNT_STATUS PASSWORD_VER O -------------------- -------------------------------- ------------ - DBSNMP EXPIRED & LOCKED 10G 11G Y SQL> conn dbsnmp/dbsnmp ERROR: ORA-28000: the account is locked Warning: You are no longer connected to ORACLE. SQL> conn / as sysdba Connected. SQL> alter user DBSNMP account unlock; User altered. SQL> conn dbsnmp/dbsnmp ERROR: ORA-28001: the password has expired Changing password for dbsnmp New password: Retype new password: Password changed Connected.
Sure as DBA you may workaround this problem and set the users new password with alter user
. So far I couldn’t reproduce this problem with a custom test user. According to Oracle this problem is related to an unpublished bug 16901482 which will be fixed with a one off patch 17217733.
Pingback: Update: ORA-00600 [kpdbModAdminPasswdInRoot: not CDB] when changing password of default account | OraDBA