Oracle
 sql >> Base de données >  >> RDS >> Oracle

créer un champ de mot de passe dans oracle

Une méthode sans utiliser "The Secure External Password Store" (quel qu'il soit) consiste à ajouter une colonne RAW(16) à la table pour stocker un nom d'utilisateur et un mot de passe haché :

alter table mytable add password raw(16);

Ensuite, stockez-y le nom d'utilisateur et le mot de passe hachés comme ceci :

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

Ensuite, lorsqu'un utilisateur essaie de se connecter avec un nom d'utilisateur et un mot de passe, vous pouvez les vérifier comme ceci :

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

De cette façon, personne ne peut découvrir quel est le mot de passe stocké (autrement que par la force brute).