devo definir
SQLNET.ALLOWED_LOGON_VERSION_SERVER=12a
em todos os meus servidores de banco de dados.
Como posso verificar se os clientes ainda usam protocolos de autenticação antigos?
Sei que posso verificar DBA_USERS
versões antigas de senha. No entanto, como verificar se o usuário realmente usa a versão antiga da senha? listener.log? Trilha de auditoria?
Por favor sugira.
Verifique isso: https://stackoverflow.com/a/56531594/836215
Isso lhe dirá quais formatos são senhas armazenadas. Além disso, este artigo descreve os formatos de senha em detalhes .
Há também uma exibição
V$SESSION_CONNECT_INFO
que informa qual versão/tipo de SW cliente é usado pelo aplicativo. Se essa exibição não contiver nenhuma informação confiável, seu cliente usa alguns drivers JDBC muito antigos. O que você deve se preocupar é com a versão do driver do cliente.PS: Esta exibição também informará se o cliente negociou alguma criptografia para conexão de sessão.
Para atender ao requisito mínimo de protocolo para o seu
SQLNET.ALLOWED_LOGON_VERSION_SERVER
valor, o usuário teria que definir sua senha já usando essa versão do protocolo sqlnet. Caso contrário, eles não poderão se autenticar no banco de dados - mesmo que tenham uma senha válida em um protocolo mais antigo - e seu cliente retornará um erro informando que não encontrou um protocolo de autenticação correspondente. Nesse caso, a senha precisaria ser redefinida pelo DBA usando o protocolo mais recente antes que eles pudessem se conectar.Sob nenhuma circunstância o banco de dados permitirá que um protocolo mais antigo do que o especificado em sqlnet.ora seja usado, então não há nada para auditar, per se. Todas as solicitações de autenticação de protocolo mais antigas são simplesmente rejeitadas.