A Oracle traz por default em seu banco de dados uma política de senhas que determina que ela deve ser trocada de tempos em tempos, que precisa seguir um critério de complexidade (Ter letras maiúsculas, minúsculas, caracteres especiais e números), regras de tentativa de login e parâmetros de reuso da senha (quantidade e tempo).

Neste guia iremos explicar como essas regras podem ser alteradas, seja para aumentar o nível de segurança como para relaxar em alguns desses critérios.

Vale salientar que é imprescindível que as empresas adotem políticas rígidas de segurança para proteger seus dados, atentando também para a Lei Geral de Proteção de Dados (LGPD). O fato de orientarmos como desabilitar algumas políticas aqui não implica que isso seja uma boa prática, mas um recurso que pode ser necessário ou interessante em algumas situações específicas, como uma base de testes, por exemplo.

As políticas de senha da Oracle são atribuídas a um perfil (profile). Caso seja necessário ter uma regra específica para um usuário ou grupo deles, deve-se criar um perfil para esse caso e atribuí-lo aos usuários desejados. Todos usuários são criados no perfil default, então os comandos que iremos ilustrar aqui serão alterando esse profile.

O primeiro parâmetro que iremos ver é o password_life_time. Esse parâmetro define a quantidade de dias que a mesma senha pode ser usada. Após esse período ela precisa ser trocada por uma nova senha. O valor default para esse parâmetro é de 180 dias. Caso queira que a senha não expire, pode-se usar o valor UNLIMITED, como no exemplo:

 ALTER PROFILE default LIMIT password_life_time UNLIMITED; 

O segundo parâmetro é o failed_login_attempts. Esse parâmetro define a quantidade de tentativas que o Oracle permite que uma senha seja inserida incorretamente. Quando esse limite é atingido, a conta é automaticamente bloqueada. O valor default para esse parâmetro é 10. Caso queira desabilitar essa verificação pode-se usar o valor UNLIMITED, como no exemplo abaixo:

 ALTER PROFILE default LIMIT failed_login_attempts UNLIMITED;

Outros parâmetros importantes são os password_reuse_max e o password_reuse_time. Esses dois parâmetros devem ser definidos em conjunto. Password_reuse_time especifica o número de dias antes dos quais uma senha não pode ser reutilizada. Password_reuse_max especifica o número de alterações de senha necessárias antes que a senha atual possa ser reutilizada. Para que esses parâmetros tenham algum efeito, você deve especificar um número inteiro para ambos.

Se você especificar um número inteiro para ambos os parâmetros, o usuário não poderá reutilizar uma senha até que a senha tenha sido alterada o número de vezes especificado para password_reuse_max durante o número de dias especificado para password_reuse_time.

Por exemplo, se você especificar password_reuse_time a 30 e password_reuse_max a 10, o usuário poderá reutilizar a senha após 30 dias se a senha já tiver sido alterada 10 vezes.

A sintaxe dos comandos fica conforme o exemplo:

ALTER PROFILE default LIMIT PASSWORD_REUSE_MAX 10;
ALTER PROFILE default LIMIT PASSWORD_REUSE_TIME 30;

Por fim, é possível atribuir um script PL/SQL para verificar a complexidade da senha no perfil, usando o comando abaixo:

ALTER PROFILE default LIMIT PASSWORD_VERIFY_FUNCTION <função>;

Caio Almeida

Diretor Executivo da Cibernet Solutions, engenheiro eletrônico, gerente de projetos, DBA, corintiano e aficionado por cultura pop.

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.