Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

criando campo de senha no oracle


Um método sem usar "The Secure External Password Store" (seja lá o que for) é adicionar uma coluna RAW(16) à tabela para armazenar um nome de usuário e senha com hash:
alter table mytable add password raw(16);

Em seguida, armazene o nome de usuário e a senha com hash assim:
insert into mytable (username, password, ...)
values (:username, dbms_obfuscation_toolkit.md5 
                      (input => utl_i18n.string_to_raw
                                  (upper(:username)||:password))
       );

Então, quando um usuário tenta fazer login com um nome de usuário e senha, você pode verificá-los assim:
select 'OK'
from   mytable
where  username = :username
and    password = dbms_obfuscation_toolkit.md5 
                      (input => utl_i18n.string_to_raw
                                  (upper(:username)||:password));

Dessa forma, ninguém pode descobrir qual é a senha armazenada (exceto por força bruta).