password expired Oracle
25/08/2004
0
O Problema é o seguinte: quando a senha de um usuário expira, no próximo login do usuário o Oracle solicita que o mesmo informe uma nova senha para continuar.
No SQL Plus (ferramenta da própria Oracle) quando isso acontece, automaticamente é exibido um prompt para o usuário digitar a nova senha, após feito isso, o Oracle conecta o usuário ao banco.
Como é que posso fazer o mesmo em Delphi ????
Eu já consigo saber se o erro retornado pelo exception do TDataBase é: ´password expired´, no entanto não sei como passar ao Oracle a nova senha que deve ser informada pelo Usuário:
try dm.dbModulos.Connected := True; except on E: EDBEngineError do begin result := false; if erro_oracle(e.Message) = ´ORA-01017´ then showmessage(´Usuário/Senha Inválidos !´) else if erro_oracle(e.Message) = ´ORA-28001´ then begin showmessage(´Senha Expirada´); //Aqui devo criar um mecanismo para passar uma nova senha ao Oracle. end else showmessage(´Não foi possível conectar ao Banco !´); end; end;
Alguém pode me ajudar ????
Rodrigo Costa
Posts
26/08/2004
Motta
ALTER USER <NOME> IDENTIFIED BY <SENHA>
VC PODE FAZER ISTO VIA tQuery.ExecSql ...
26/08/2004
Rodrigo Costa
Eu resolvi (paletivamente) assim: caso ocorra o erro de senha expirada eu conecto com outro usuário e faço o alter user e em seguida desconecto e faço o logon do usuário com a nova senha.
Eu gostaria de saber como passar os parâmetros OLD PASSWORD E NEW PASWORD que o Oracle solicita quando o erro ocorre. Já tentei de tudo.... mas nada funcionou.
De qualquer forma, obrigado.
26/08/2004
Motta
Column Name Null? Type
------------------------------ -------- ----
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME
com base em EXPIRY_DATE vc pode dizer para o usuario ....
faltam x dias para sua senha ir pro saco ...
se ele não alterar só o administrador poderia faze-lo , procedimento de segurança, senão pq trabalhar com EXPIRY_DATE ??
Clique aqui para fazer login e interagir na Comunidade :)