Oracle Database - Password Rollover Time
Olá pessoal, nesse post vou mostrar uma funcionalidade nova no que tange a gerenciamento de usuários e senhas no Banco de dados Oracle que está disponível a partir da versão 21c. Esse recurso foi backportado para o Oracle 19c na atualização de versão 19.12.
Explicando melhor o Password Rollover Time, se trata de um a configuração feita no profile do banco onde podemos configurar um tempo em dias (limite de 60 dias) onde será possível usar tanto a senha antiga quanto a senha nova para se conectar no banco de dados. Na prática essa nova funcionalidade foi desenvolvida pensando nas alterações de senha com mínimo impacto possível, sobre tudo para ambientes produtivos e senhas de usuário de aplicação onde temos vários pontos para alterar a senha e podem ocorrer falhas de acesso em aplicações críticas, dessa forma configurando o parâmetro PASSWORD_ROLLOVER_TIME temos um período maior para realizar as devidas alterações de senhas em todos os pontos necessários sem a necessidade de perda de conexões e com impacto mínimo para a operação.
Dessa forma, vamos demostrar na prática como essa nova configuração funciona.
Pré-requisitos - Versão do banco 19.12c ou Posterior:
1- Criação de usuário TESTUSER1
conn sys/SysPassword1@//localhost:1521/pdb1 as sysdba --drop user testuser1 cascade; create user testuser1 identified by testuser1 quota unlimited on users; grant connect, resource to testuser1;
2- Criação de um profile
Criamos o profile definindo o limite para 1 dia, e associamos o usuário de teste a esse perfil.
-- drop profile pw_rollover_time_prof; create profile pw_rollover_time_prof limit password_rollover_time 1; alter user testuser1 profile pw_rollover_time_prof;
alter profile pw_rollover_time_prof limit password_rollover_time 1.5;
conn testuser1/testuser1@//localhost:1521/pdb1 alter user testuser1 identified by newpasswd1;
conn testuser1/testuser1@//localhost:1521/pdb1 Connected. SQL> conn testuser1/newpasswd1@//localhost:1521/pdb1 Connected. SQL>
select account_status,
to_char(password_change_date, 'dd-mon-yyyy hh24:mi:ss') as password_change_date
from dba_users
where username = 'TESTUSER1';column resource_name format a25
column limit format a10
select resource_name,
limit
from dba_profiles
where profile = 'PW_ROLLOVER_TIME_PROF'
and resource_name = 'PASSWORD_ROLLOVER_TIME';4- Como desabilitar o Password Rollover
Definir o limite PASSWORD_ROLLOVER_TIME para 0 desativa a rotação gradual de senhas. No exemplo a seguir, definimos o limite para zero e recebemos erro ao conectar ao usuário de teste com a senha antiga.
conn sys/SysPassword1@//localhost:1521/pdb1 as sysdba alter profile pw_rollover_time_prof limit password_rollover_time 0;
Apenas a nova senha é aceita agora:
IMPORTANTE
Caso a senha antiga seja comprometida e seja necessário desabilitar o rollover para evitar acessos usando a senha antiga mas queremos reabilitar o rollover gradual para futuras mudanças de senha, precisamos garantir que tenhamos ao menos uma tentativa de login entre desabilitar e habilitar o rollover:
Como podemos ver acima, eu alterei o valor do parâmetro para "0" , logo após realizei um teste com o user antigo e o novo, após isso eu alterei novamente o valor do parâmetro para "1.5", alterei a senha do user e após isso o rollover foi ativo novamente.
Conclusão:
- Como configurar o Password Rollover Time
- Como desativar Password Rollover Time
- Como gerenciar usuários em bancos de Dados Oracle
- Como gerenciar profiles
- Tempo Gradual de Rolamento de Senhas de Banco de Dados (PASSWORD_ROLLOVER_TIME) no Oracle Database 19c e 21c - ORACLE-BASE
- Set up Gradual Password Rollover in Oracle Database on Oracle Cloud Infrastructure
Por hoje é isso pessoal, espero que esse conteúdo ajude de alguma forma e caso tenham alguma dúvida podem deixar aqui nos comentários ou me mandar via E-mail com Título da postagem, meu E-mail para envio de dúvidas e sugestões de novas postagens: pedrohvido@gmail.com.
Comentários
Postar um comentário