Wiele razy trafiam na ten błąd, zgłaszany zwłaszcza po migracji bazy danych.
Po ponownym ustawieniu hasła okazywało się, że nadal coś nie działa
W takim przypadku kluczowa jest wersja klienta Oracle oraz wersja hasła przechowywana w bazie danych.
Co w takim razie należy wykonać ?
Ustalamy jaką wersją klienta użytkownik próbuję się podłączyć do bazy danych
Jeśli jest to starsza wersji i nie możemy z jakiegoś powodu jej zaktualizować do nowszej wersji, to trzeba doprowadzić, aby hasło w bazie danych było zgodne ze starszą wersją klienta.
Jak sprawdzamy wersję hasła:
SQL> select USERNAME, PASSWORD_VERSIONS from DBA_USERS
USERNAME PASSWORD_VERSIONS
------------------------------ -----------------
DBUSER 12C
Aby pozwolić klientom na używanie starszych wersji klienta i haseł należy w pliku sqlnet.ora ($OH/admin/network) ustawić parametr (przykład dla hasła w wersji 10g):
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
A następnie ponownie ustawić hasło dla użytkownika.
W kolumnie PASSWORD_VERSIONS w dba_users powinny się pojawić wersja “10g 11g 12c” i użytkownik będzie mógł się zalogować ze starego klienta.
SQL> select USERNAME, PASSWORD_VERSIONS from DBA_USERS
USERNAME PASSWORD_VERSIONS
------------------------------ -----------------
DBUSER 10G 11G 12C