Como corrigir o erro ORA-28002 The Password Will Expire in 7 Days

Database User Profiles

Quando você cria um usuário de banco de dados, ele tem um perfil. Que, por padrão, é o perfil “DEFAULT”. Isso define muitas coisas. Como limites de CPU, E / S e memória.

E a política de senha.

Que expira as senhas a cada 180 dias.

Para impedir isso e permitir que os usuários mantenham suas senhas para sempre, altere o perfil da seguinte forma:

alter profile "DEFAULT" limit 
  password_life_time unlimited;

Ou crie uma nova política e atribua-a aos seus usuários:

create profile unlimited_pwd_prof limit
  password_life_time unlimited;
 
alter user <username> profile unlimited_pwd_prof;

Depois de fazer isso, você pode achar que está tudo bem. Então, você fica surpreso quando fizer login de novo e o erro ORA-28002 ainda está lá.

Ou, se demorar demais, agora o erro será ORA-28001

O problema é que você entrou no período de carência. Isso começa depois que password_life_time em dias se passaram desde a última alteração de senha. Por padrão, ele funciona por sete dias. Se você quiser aumentar esse tempo, por exemplo duas semanas, execute:

alter profile unlimited_pwd_prof limit  
  password_grace_time 14;

Durante esse tempo, você ainda pode fazer o login, mas receberá avisos de “a senha irá expirar”. Após o número de dias definido em password_grace_time, a senha expirará.

A única maneira de sair dessa situação é redefinir a senha!

Rode o comando abaixo para redefinir a senha, você pode usar a mesma senha usada atualmente para evitar problemas de login em sistemas onde a senha já está configurada:

alter user <username> identified by <password>;

How to Fix ORA-28002 The Password Will Expire in 7 Days Errors

Database User Profiles

When you create a database user it has a profile. Which, by default, is the “DEFAULT” profile. This defines many things. Such as CPU, I/O and memory limits (though we recommend you use the Database Resource Manager for these instead).

And the password policy.

Which expires passwords every 180 days.

To stop this and allow users to keep their password forever, alter the profile like so:

alter profile "DEFAULT" limit 
  password_life_time unlimited;

Or create a new policy and assign that to your users:

create profile unlimited_pwd_prof limit
  password_life_time unlimited;
 
alter user <username> profile unlimited_pwd_prof;

Once you’ve done this you may think everything’s good. So you’re surprised when you login again and still hit the ORA-28002 error.

Or, if enough time has elapsed, you now see ORA-28001:

What’s going on here?

The problem is you’ve entered the grace period. This starts after password_life_time days have elapsed since the last password change. By default it runs for seven days. If you want to increase this time to say, two weeks, run:

alter profile unlimited_pwd_prof limit  
  password_grace_time 14;

During this time you can still login, but will get “the password will expire” warnings. After the number of days defined in the password_grace_time have passed, the password expires.

The only way out of either situation is to reset the password!

To do so, run:

alter user <username> identified by <password>;