मुझे नहीं लगता कि ओरेकल डेटाबेस आपको ऐसा करने के लिए एक एपीआई देता है। आप जिस एक कीचड़ का उपयोग कर सकते हैं, वह इसे जांचने के लिए लूपबैक डेटाबेस लिंक का उपयोग करना होगा। इस तरह:
DECLARE
p_username VARCHAR2 (30) := 'MMCP'; -- Change to the user whose password you are validating
p_test_password VARCHAR2 (30) := 'NOT_MY_PASSWORD';
p_loopback_connection_string VARCHAR2(80) := 'ORCLQA'; -- Change this for your environment
BEGIN
BEGIN
EXECUTE IMMEDIATE q'[drop database link password_test_loopback]';
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
EXECUTE IMMEDIATE
'create database link password_test_loopback connect to "' || p_username || '" identified by "' || p_test_password || '" using ''' || p_loopback_connection_string || '''';
EXECUTE IMMEDIATE q'[SELECT * FROM [email protected]_test_loopback]';
EXECUTE IMMEDIATE q'[drop database link password_test_loopback]';
dbms_output.put_line('Password is good');
EXCEPTION WHEN OTHERS THEN
IF SQLCODE = -1017 THEN
DBMS_OUTPUT.PUT_LINE('Password is wrong');
ELSE
raise;
END IF;
END;
अपने Oracle प्रमाणीकरण के लिए सिंगल साइनऑन / LDAP का उपयोग करने का तरीका खोजने के लिए अधिक उन्नत विकल्प होंगे। फिर, आपकी समस्या बन जाती है -- मैं अपने LDAP शब्दकोश में उपयोगकर्ता नाम/पासवर्ड को कैसे सत्यापित करूं, जो बहुत आसान है।