Resolvendo o erro “ORA-01017 Invalid Username/Password logon denied” ao atualizar o banco de 11g para 12c

Recentemente fizemos uma migração de versão onde saímos do Oracle 11g (11.2.0.4) para o 12c (12.2.0.1). Ao tentar logar na nova instância os usuários receberam o seguinte erro: “ORA-01017: invalid username/password; logon denied” conforme imagem abaixo:

 

 

 

 

 

 

Tanto o usuário quanto a senha informada estavam corretos e mesmo assim o erro persistia. Foi necessário checar na view DBA_USERS como estavam as versões de password dos usuários:


SYS@ORCL12 AS SYSDBA> select count(*), password_versions from dba_users group by password_versions;

COUNT(*) PASSWORD_VERSIONS
---------- --------
1
132 10G
293 10G 11G

Podemos ver que as senhas continuam com os padrões da versão anterior (case sensitive 10g e case insentive 10g 11g), motivo pelo qual o Oracle 12c não permitia o logon.

 

 

A solução envolve duas etapas, que são sugeridas abaixo:

Alterar o parâmetro SEC_CASE_SENSITIVE_LOGON para false! Por default ele vem setado como true e considera que as senhas são CASE_SENSITIVE. Alterando para false as senhas serão consideradas como CASE_INSENSITIVE:


SYS@ORCL12 AS SYSDBA> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE SCOPE = BOTH;

System altered.

Depois de alterado, tente logar novamente com o usuário e senha! Caso ainda não consiga logar, é preciso alterar o arquivo SQLNET.ORA no $ORACLE_HOME do seu banco de dados com as seguintes configurações:


# Generated by Oracle configuration tools.
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Após realizar o procedimento acima os usuários conseguiram logar normalmente na base, bem como os sistemas voltaram a funcionar perfeitamente.

MAS ATENÇÃO!!!

Essas configurações fazem que o protocolo de autenticação do Oracle seja nivelado para versão 10! Vale lembrar que isso é apenas um paliativo até que as senhas dos usuários sejam atualizadas para a versão 12c.

Essa atualização pode ser realizada com o simples comando abaixo, alterando a senha para o mesmo valor atual e deve ser executada para todos os usuários do banco:


SYS@ORCL12 AS SYSDBA> alter user LEONARDO identified by "L&0N@RD0";

SYS@ORCL12 AS SYSDBA> select username, password_versions from dba_users where username = 'LEONARDO';

USERNAME PASSWORD
------------------------------ --------
LEONARDO 10G 11G <strong>12C</strong>

Após atualizar as senhas de seus usuários para a versão 12c, altere no SQLNET.ORA os parâmetros abaixo com os seguintes valores:

 # Generated by Oracle configuration tools. 
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=12
SQLNET.ALLOWED_LOGON_VERSION_SERVER=12 
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 

Boa sorte nas suas migrações!

 

Deixe uma resposta

Seu e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

×