Oracle
 sql >> Database >  >> RDS >> Oracle

creazione del campo password in Oracle

Un metodo senza utilizzare "The Secure External Password Store" (qualunque esso sia) consiste nell'aggiungere una colonna RAW(16) alla tabella per memorizzare un nome utente e una password con hash:

alter table mytable add password raw(16);

Quindi archivia il nome utente e la password con hash in questo modo:

insert into mytable (username, password, ...)
values (:username, dbms_obfuscation_toolkit.md5 
                      (input => utl_i18n.string_to_raw
                                  (upper(:username)||:password))
       );

Quindi, quando un utente tenta di accedere con un nome utente e una password, puoi controllarli in questo modo:

select 'OK'
from   mytable
where  username = :username
and    password = dbms_obfuscation_toolkit.md5 
                      (input => utl_i18n.string_to_raw
                                  (upper(:username)||:password));

In questo modo nessuno può scoprire qual è la password memorizzata (a parte la forza bruta).