If the user provides a new password, the database server authenticates the user ID and password and attempts to change the
password before the login_procedure option is called. This process allows the user to change an expired password without the
involvement of a DBA. If you have set the verify_password_function option, the new password is verified. If you are authenticating
with an Integrated or Kerberos login, the original password is not validated and the database server ignores the new password
value and the password is not changed.
On Microsoft Windows, if you use the special value *, the client library prompts for a new password during a connection attempt only if the existing password has expired. The
user must provide their existing password, provide their new password, and confirm their new password. When the user completes
the fields and clicks OK, the old password is authenticated and the database server attempts to change the password. If you have set the verify_password_function
option, the new password is verified. The process of verifying if a user's password has expired, prompting for a password,
and authenticating and changing the password occurs with a single connect call to the client library.
This connection parameter is very effective when you implement a login policy using the password_life_time or password_expiry_on_next_login
options. Alternatively, you can implement a password expiry policy by having the login_procedure signal the Password has expired error.
A user receives a Password has expired error if their environment does not support password prompting. In a Microsoft Windows environment, the prompt window might not
correctly prevent interaction with the calling application's window (it may not be modal or have the correct parent window)
if the calling application has multiple top-level windows or if the application's top level windows are minimized.
In a Windows environment, if you use the ODBC SQLDriverConnect function and the DriverCompletion argument is anything other
than SQL_DRIVER_NOPROMPT, the connection prompts for a new password if the password has expired. The connection might prompt
for a new password in OLE DB when the DBPROP_INIT_PROMPT property is anything other than DBPROMPT_NOPROMPT. Both cases function
as if the NewPassword=* connection parameter was specified.