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:
[code lang=”sql”]
SYS@ORCL12 AS SYSDBA> select count(*), password_versions from dba_users group by password_versions;
COUNT(*) PASSWORD_VERSIONS
———- ——–
1
132 10G
293 10G 11G
[/code]
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:
[code lang=”sql”]
SYS@ORCL12 AS SYSDBA> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE SCOPE = BOTH;
System altered.
[/code]
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:
[code lang=”sql”]
# Generated by Oracle configuration tools.
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
[/code]
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:
[code lang=”sql”]
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>
[/code]
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:
[code lang=”sql”] # Generated by Oracle configuration tools.
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=12
SQLNET.ALLOWED_LOGON_VERSION_SERVER=12
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
[/code]
Boa sorte nas suas migrações!
Uma resposta
Valeu Leonardo. Suas dicas e soluções foram muito úteis,