基本上我有一个使用 OCI 登录到 oracle db 的 C++ 应用程序。DB 配置为对来自 Windows 域用户帐户的用户进行身份验证。
在我的客户端登录的那一刻,我通过在用户会话句柄中设置 OCI_ATTR_PASSWORD 和 OCI_ATTR_USERNAME 属性将用户名和密码传递给 OCI 以便登录。
我应该在代码中做什么以使 OCI 直接获取 Windows 凭据,而不是我通过代码提供它们?
基本上我有一个使用 OCI 登录到 oracle db 的 C++ 应用程序。DB 配置为对来自 Windows 域用户帐户的用户进行身份验证。
在我的客户端登录的那一刻,我通过在用户会话句柄中设置 OCI_ATTR_PASSWORD 和 OCI_ATTR_USERNAME 属性将用户名和密码传递给 OCI 以便登录。
我应该在代码中做什么以使 OCI 直接获取 Windows 凭据,而不是我通过代码提供它们?
请参阅Oracle 调用接口程序员指南 - OCISessionBegin()
支持的第二种凭证是外部凭证。在调用 OCISessionBegin() 之前,无需在用户会话句柄上设置任何属性。凭证类型为 OCI_CRED_EXT。这等效于 Oracle7 的“连接 /”语法。如果已为 OCI_ATTR_USERNAME 和 OCI_ATTR_PASSWORD 设置了值,则在使用 OCI_CRED_EXT 时将忽略这些值。