Picture of Roberto Sobrinho
Roberto Sobrinho

29/08/2024

PASSWORD_ROLLOVER_TIME com ALTER USER e ALTER PROFILE no Oracle


Administrar trocas de senha apresenta desafios, especialmente em sistemas críticos que dependem de credenciais periodicamente atualizadas. O Oracle Database oferece uma solução com o parâmetro PASSWORD_ROLLOVER_TIME, que mantém a senha antiga válida por um período específico após sua alteração. Esse recurso, introduzido inicialmente no Oracle 21c e disponível a partir da atualização 19.12 no Oracle 19c, facilita a transição. Neste post, veja como configurar e testar o PASSWORD_ROLLOVER_TIME com os comandos ALTER USER e ALTER PROFILE.

Caso Real

Um cliente precisou implementar uma política de troca de senhas para usuários aplicacionais em um ambiente Oracle, mas encontrou dificuldades: com múltiplos pontos de acesso, mudar a senha em todos ao mesmo tempo significaria uma interrupção nos serviços. A saída foi usar o PASSWORD_ROLLOVER_TIME. Esse recurso permitiu ao cliente trocar as senhas sem gerar indisponibilidade, mantendo a senha antiga válida por um período e possibilitando a atualização gradual dos pontos de acesso.


Passo a Passo para Testes

1. Criação do Ambiente de Teste

Vamos criar um perfil chamado PERFIL_DA_VILA e alguns usuários que farão parte desse perfil:

CREATE PROFILE PERFIL_DA_VILA LIMIT PASSWORD_ROLLOVER_TIME 1D;

CREATE USER chaves IDENTIFIED BY senha123 PROFILE PERFIL_DA_VILA;
CREATE USER kiko IDENTIFIED BY senha123 PROFILE PERFIL_DA_VILA;
CREATE USER chiquinha IDENTIFIED BY senha123 PROFILE PERFIL_DA_VILA;

GRANT CREATE SESSION TO chaves;
GRANT CREATE SESSION TO kiko;
GRANT CREATE SESSION TO chiquinha;

O perfil PERFIL_DA_VILA está configurado para permitir que os usuários utilizem suas senhas antigas por 1 dia após a mudança.

2. Alterando o Perfil com ALTER PROFILE

Se necessário, podemos ajustar o período de rollover para todo o perfil PERFIL_DA_VILA utilizando o comando ALTER PROFILE:

ALTER PROFILE PERFIL_DA_VILA LIMIT PASSWORD_ROLLOVER_TIME 6H;

Isso ajusta o tempo de rollover para todos os usuários associados ao perfil.

3. Verificando a Aplicação do PASSWORD_ROLLOVER_TIME

Após a alteração do perfil, altere a senha de um dos usuários e teste se o PASSWORD_ROLLOVER_TIME está funcionando conforme esperado:

-- Teste o login com a senha antiga e nova

ALTER USER chaves IDENTIFIED BY nova_senha;

--#Senha Anterior Deve funcionar por 6 horas
sqlplus chaves/senha123@pdb 

--#Nova Senha Deve funcionar imediatamente
sqlplus chaves/nova_senha@pdb 

Comando 01: Este comando altera a senha do usuário chaves para nova_senha. É utilizado para atualizar a senha do usuário dentro do banco de dados Oracle.

Comando 02: Este comando tenta realizar login no banco de dados pdb usando o usuário chaves com a senha antiga (senha123). Ele deve funcionar por um período de rollover definido pelo perfil.

Comando 03: Este comando tenta realizar login no banco de dados pdb usando o usuário chaves com a nova senha (nova_senha). O login deve ser bem-sucedido imediatamente após a alteração da senha.

4. Compatibilidade

  • Oracle 19c: Disponível a partir da atualização 19.12.
  • Oracle 21c: Introdução inicial do recurso PASSWORD_ROLLOVER_TIME.

5. Exclusão dos Objetos Criados

Após realizar os testes, é importante limpar o ambiente, removendo os usuários e o perfil criado:

DROP USER chaves CASCADE;
DROP USER kiko CASCADE;
DROP USER chiquinha CASCADE;
DROP PROFILE PERFIL_DA_VILA;

PASSWORD_ROLLOVER_TIME permite gerenciar transições de senha com segurança e eficiência. Aplicando essa configuração no nível de perfil, é possível ajustar o comportamento do banco de dados conforme as necessidades.

Realizar testes no ambiente garante que sistemas e usuários passem por trocas de senha sem interrupções.

Password rollover no Oracle


⚾🥎 #20240829 #GuinaNãoTinhaDó #CaceteDeAgulha #BóBó #BackupFalhando #CorreQueVemBomba #FomeLoca #LessaDisse #CabeloDeSapo #Farrapadinha #DifuntosMorreram  🥎⚾


20240829_testando_password_rollover_time.sql

Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Pesquisar

Roberto Sobrinho

Sou Roberto Fernandes Sobrinho, também conhecido como Sobrinho DBA , pós graduado em “Architecture and Database Administration”, entusiasta, dedicado e com 20 anos de experiência com Oracle Database e suas diversas distribuições e variações.

Oracle ACE Associate

2025

Specialist

Exadata Database Machine X9M

Professional

Oracle Database Administration

Professional

Oracle Database 19c: RAC, ASM, & Grid Infra Administrator

Professional

Oracle Autonomous Database Cloud

Professional

Oracle Cloud Database Migration and Integration

Professional

Oracle Database PL/SQL Developer

Associate

Oracle Cloud Infrastructure Architect

Associate

Oracle Cloud Infrastructure Foundations

Categorias

Categorias

Tags

PASSWORD_ROLLOVER_TIME com ALTER USER e ALTER PROFILE no Oracle