【发布时间】:2014-07-17 15:34:24
【问题描述】:
我在 Windows 7 主机上运行 Oracle XE 11g 我能够使用 SQLPlus 中的 OS 身份验证连接到 Oracle 我可以使用带有用户名和密码的 TSQLConnection 在 Delphi 中连接到 Oracle
当我将 SQLConnection.Params 中的用户名和密码设为空白并将 OSAuthentication 和/或 OS 身份验证(所有组合)参数设置为 True 并尝试将 Connected 设置为 True 时,我得到:
ORA-01017:用户名/密码无效;登录被拒绝;
有没有人通过使用 Delphi 和 dbExpress 的 OS 身份验证连接到 Oracle?
【问题讨论】:
-
TSQLConnection使用与调用线程关联的用户,除非另有说明。因此,在使用空白用户名/密码连接时尝试使用 Win32 模拟。 -
我不熟悉 Win32 模拟。与调用线程关联的用户不会是 %userdomain%\%username% 吗?当我调用 Windows API 来获取这些值时,它们就是我的 Oracle 服务器对操作系统身份验证的期望。
-
使用
ImpersonateLoggedOnUser()或相关函数完成模拟。与线程关联的用户是默认启动应用程序进程的用户,除非线程以可编程方式模拟另一个用户。
标签: oracle delphi authentication oracle11g dbexpress