Skip to Main Content

Security Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Update Active Directory Password through DBMS_LDAP call

563164Apr 6 2007 — edited Dec 24 2007
I have a need to update a user's password in Microsoft's Active Directory through PL/SQL. I have configured an Oracle Wallet and can successfully bind to the Active Directory (LDAP) over SSL Port 636.

However, when I attempt to change the 'unicodePwd' parameter through the DBMS_LDAP.populate_mod_array statement below:

DBMS_LDAP.populate_mod_array(v_emp_array,DBMS_LDAP.MOD_REPLACE,'unicodePwd',v_emp_vals);

I receive the following error:

ORA-31202: DBMS_LDAP: LDAP client/server error: DSA is unwilling to perform. 0000001F: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_LDAP", line 1455
ORA-06512: at "SYS.DBMS_LDAP", line 929
ORA-06512: at line 103

Has anyone experienced this before? Is this a problem on the Active Directory configuration, or is there something that may need to be done to the string being passed into the attribute (i.e., needs to be converted to Unicode?). We are attempting to create the Unicode string through the following routine:

v_emp_vals(1) := UTL_RAW.cast_to_raw(convert(v_random_pwd, 'AL16UTF16', 'US7ASCII'));

, but this does not appear to resolve the issue. Any help!?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 21 2008
Added on Apr 6 2007
16 comments
11,734 views