Une méthode sans utiliser « Le mot de passe externe Secure Store » (quel qu'il soit) est d'ajouter une colonne RAW (16) à la table pour stocker un nom d'utilisateur haché et mot de passe:
alter table mytable add password raw(16);
Puis magasin le nom d'utilisateur et mot de passe haché 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 tente de se connecter avec un nom d'utilisateur et 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 savoir quel est le mot de passe stocké (autrement que par force brute).
Bons points - Je dois étudier DBMS_CRYPTO. La raison pour laquelle j'utilise des mots de passe stockés dans la base de données est que je travaille sur un site web public où tout le monde peut s'inscrire. Construit en utilisant Apex, bien sûr! –
@Tony Andrews - Bien sûr, c'est Apex - y a-t-il un autre outil? – APC