Estou usando o Oracle para desenvolvimento. A senha de uma conta de autoinicialização que eu sempre uso para reconstruir meu banco de dados expirou.
Como desativo a expiração de senha deste usuário (e de todos os outros usuários) permanentemente?
Estou usando o Oracle 11g, que possui senhas que expiram por padrão.
Respostas:
Para alterar a política de expiração de senha para um determinado perfil de usuário no Oracle, verifique primeiro qual perfil o usuário está usando:
Em seguida, você pode alterar o limite para nunca expirar usando:
Se você deseja verificar previamente o limite, pode usar:
fonte
select username,expiry_date,account_status from dba_users;
para visualizar o account_status. para as contas que expiram, pode ser necessário redefinir a senha uma vez pela última vez.ALTER USER Bob PROFILE MyNonExpiringProfile;
.Para desenvolvimento, você pode desativar a política de senha se nenhum outro perfil foi definido (por exemplo, desativar a expiração da senha no padrão):
Em seguida, redefina a senha e desbloqueie a conta do usuário. Nunca deve expirar novamente:
fonte
Como as outras respostas afirmam, alterar o perfil do usuário (por exemplo, o perfil 'PADRÃO') adequadamente levará a senhas que, uma vez definidas, nunca expirarão.
No entanto, como um comentarista ressalta, as senhas definidas com os valores antigos do perfil já podem ter expirado e (se após o período de carência especificado no perfil) a conta foi bloqueada.
A solução para senhas expiradas com contas bloqueadas (conforme fornecido em um comentário de resposta) é usar uma versão do comando ALTER USER:
No entanto, o comando unlock funciona apenas para contas em que a conta está realmente bloqueada, mas não para as contas que estão no período de cortesia, ou seja, onde a senha expirou, mas a conta ainda não está bloqueada. Para essas contas, a senha deve ser redefinida com outra versão do comando ALTER USER:
Abaixo está um pequeno script SQL * Plus que um usuário privilegiado (por exemplo, usuário 'SYS') pode usar para redefinir a senha de um usuário para o valor atual atual do hash armazenado no banco de dados.
EDIT: As versões mais antigas do Oracle armazenam a senha ou o hash da senha na coluna pword, as versões mais recentes do Oracle armazenam o hash da senha na coluna spare4. O script abaixo foi alterado para coletar as colunas pword e spare4, mas para usar a coluna spare4 para redefinir a conta do usuário; modifique conforme necessário.
fonte
Eu acredito que o comportamento de expiração da senha, por padrão, nunca deve expirar. No entanto, você pode configurar um perfil para o seu usuário de desenvolvimento definido e definir o
PASSWORD_LIFE_TIME
. Veja o orafaq para mais detalhes. Você pode ver aqui um exemplo da perspectiva e uso de uma pessoa.fonte
Sugiro que não seja uma boa idéia desativar a expiração da senha, pois isso pode levar a possíveis ameaças à confidencialidade, integridade e disponibilidade dos dados.
No entanto, se você quiser.
Se você tiver acesso adequado, use o comando SQL
Isso deve lhe dar um resultado assim.
Agora você pode usar a resposta de Pedro Carriço https://stackoverflow.com/a/6777079/2432468
fonte