null

Миграция с Oracle 10g на версии выше : не забудьте про версии паролей во избежание ORA-39384

При миграции с Oracle Database 10g может возникнуть пренеприятнейшая ситуация с тем, что после переезда возможно получить пул заблокированных пользователей, включая SYSTEM

ORA-39384: Warning: User READONLYUSER has been locked and the password expired.
ORA-39384: Warning: User USER has been locked and the password expired.
ORA-39384: Warning: User SUPERROOT has been locked and the password expired.

Связано это с тем, что до oracle 10g включительно пароли не CASE INSENSITIVE.

Более того, такие проблемы представлены в непубличных багах оракла с говорящими названиями:

  • USERS LOCKED AND PASSWD EXPIRED AFTER MIGRATE DB 10205 TO 12.2
  • SHOULD NO LONGER IMPORT 10G VERIFIERS BY DEFAULT.  Since 10g style verifiers are no longer supported in 12.2
  • DataPump will mark such users as locked and expire the password when they are imported.
  • Oracle 12.2 requires a new password encryption algorithm which is different from Oracle 10g.

Проверить версии текущих пользователей во избежание проблем при миграции

SQL> select username, password_versions from DBA_USERS where username='USER';

USERNAME                       PASSWORD
------------------------------ --------
USER                                10G

Oracle Database 12С и выше не поддерживает password_versions 10G, поэтому для бесшовности переезда заранее на источнике  следует подготовить пользователей. В продуктивной среде,  чтобы пароли имели PASSWORD_VERSIONS="10G 11G"  нужно их переопределить / переназначить.

 PASSWORD_VERSIONS="10G 11G" 

Проверить

SQL> select username, password_versions from DBA_USERS where username='SYSTEM';

USERNAME                       PASSWORD
------------------------------ --------
SYSTEM                         10G 11G

Если в перенесенной базе данных на новую СУБД разлочить и создать пароль его все таки нужно знать, а это не всегда представляется возможным. В этом случае выполнить на новой перенесенной базе зная пароль:

ALTER USER <username> ACCOUNT UNLOCK;
ALTER USER <username> IDENTIFIED BY <password>;

 

Будьте внимательны!

Источник:  Finding and Resetting User Passwords That Use the 10G Password Version