Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
让用户可以更改口令(即使口令已经到期),而无需 DBA 干预。
{ NewPassword | NEWPWD }={ password-string | * }
任何地方。只有 Microsoft Windows 上支持提示输入新口令的客户端库。
password-string 如果用户提供新口令,数据库服务器就会验证用户 ID 和口令,并在调用 login_procedure 选项前尝试更改该口令。此过程允许用户更改到期口令,而不涉及 DBA。如果设置了 verify_password_function 选项,则会验证新口令。如果通过集成登录或 Kerberos 登录进行验证,则不校验原始口令,数据库服务器会忽略新口令值,口令也不会被更改。
* 在 Microsoft Windows 上,如果使用特殊值 *,则只有在现有口令过期时客户端库才会在尝试连接期间提示输入新口令。用户必须提供现有口令和新口令,并确认新口令。用户填写完各字段并单击 [确定] 后,系统会验证旧口令,数据库服务器也会尝试更改该口令。如果设置了 verify_password_function 选项,则会验证新口令。验证用户口令是否过期的过程、系统提示输入口令、验证和更改口令都通过单一连接调用客户端库进行。
不更改口令,客户端库不提示输入新口令。
当您使用 password_life_time 或 password_expiry_on_next_login 选项实施登录策略时,此连接参数非常有用。也可以通过使 login_procedure 发出 [口令已到期] 出错信号来实施口令到期策略。
口令已到期
如果所处环境不支持口令提示,用户会收到一条 [口令已到期] 错误消息。在 Microsoft Windows 环境中,如果调用应用程序具有多个顶级窗口或者该应用程序的顶级窗口为最小化,提示窗口可能不会成功避免与调用应用程序窗口(它可能不是对话框模式或者具有相应的父窗口)的相互作用。
在 Windows 环境下,如果使用 ODBC SQLDriverConnect 函数且 DriverCompletion 参数为 SQL_DRIVER_NOPROMPT 外的任意值,则当口令过期时,该连接就会提示输入新口令。如果 DBPROP_INIT_PROMPT 属性为 DBPROMPT_NOPROMPT 外的任意值,则在 OLE DB 中连接可能会提示输入新口令。以上两种情况的作用方式都类似于指定了 NewPassword=* 连接参数。
以下连接字符串用于更改用户 Test1 在连接时的口令:
"UID=Test1;PWD=welcome;NEWPWD=hello"
在 Windows 环境下,以下连接字符串用于在现有口令到期时提示用户 Test1 输入新口令:
"UID=Test1;PWD=welcome;NEWPWD=*"