Uma situação muito comum para quem migra do Oracle 10g para o 11g, é que tempos depois de a base estar rodando no 11g, o usuário fica bloqueado. Ao se verificar a causa, fica constatado que o bloqueio se deve ao fato do parâmetro de profile PASSWORD_LIFE_TIME vir setado como 180 dias por default, ao contrário das versões anteriores que vinham como UNLIMITED. Em ambientes que a aplicação faz a conexão por meio de um único usuário, essa situação gera uma paralização de todo o ambiente, gerando alguns contratempos na empresa. Para evitar essa situação, principalmente porque costuma ocorrer no pior dia possível, é altamente recomendável que o DBA verifique esse parâmetro do profile do usuário utilizado para conexão da aplicação: Primeiro, é necessário verificar qual o profile do usuário:
SQL> select username, profile from dba_users where username='USUARIO'; USERNAME PROFILE ------------------------------ ------------------------------ USUARIO DEFAULT
Depois, fazemos um select na visão DBA_PROFILES, para verificar o limite definido para o profile
SQL> select RESOURCE_NAME, LIMIT from dba_profiles where RESOURCE_NAME='PASSWORD_LIFE_TIME'; RESOURCE_NAME LIMIT -------------------------------- ---------------------------------------- PASSWORD_LIFE_TIME 180
Para alterar o limite de 180 para ilimitado, utilizamos o seguinte comando:
SQL> ALTER PROFILE default LIMIT password_life_time UNLIMITED; Profile altered.
Para finalizar, repetimos o select no profile para confirmar que o parâmetro foi alterado:
SQL> select resource_name, limit from dba_profiles where resource_name='PASSWORD_LIFE_TIME'; RESOURCE_NAME LIMIT -------------------------------- ---------------------------------------- PASSWORD_LIFE_TIME UNLIMITED
Pronto! Esse procedimento evitará algumas surpresas desagradáveis a cada 180 dias. Vale ressaltar que essa é uma nova implementação de segurança do Oracle 11g (o limite de 180 dias default), e que esse procedimento deve ser aplicado respeitando as políticas de segurança da empresa e da aplicação. Outro detalhe importante é que alterando o profile, essa alteração será válida para todos os usuários desse profile, portanto, uma boa prática seria a de criar um profile específico para o usuário de conexão.
Autor: Bruno Zehetmeyr bruno.zehe
Bacharel em Ciência da Computação pela UNORP-SP, Pós-graduado em Administração de Sistemas de Informação pela UFLA-MG e pós-graduado em Administração de Banco de Dados Oracle pela VERIS-SP. Analista DBA na Teiko Soluções em TI e professor universitário no Centro Universitário de Brusque – UBIFEBE. Certificado OCP 10g e OCP 11g, OCE Linux. Residente em Blumenau-SC.
A dica que dou é. sempre que você criar um banco configure o profile DEFAULT para unlimited neste parâmetros, e em alguns outros como password_gracefully etc…
Caso tenha algum owner que precise destas permissões especificas ai sugiro criar um novo profile que atenda a essas necessidades especiais.
Acredito que haja uma falta muito grande em planejamento de segurança nas empresas. Ou quando se fala de segurança só vem firewall ou proxy. Mas a segurança dos usuários conforme abordado deve ser relevado.
Grande Bruno,
Otimo Post, de grande ajuda a muitos DBA´s que estão começando a utilizar o Oracle 11G agora.
Abraços