我有一个C++ dll,它具有连接到远程SQL Server的代码。 我为此使用SQLDriverConnect API。当我从测试应用程序调用它时,它工作得很好。以C++编程方式连接到远程SQL Server
但是,当我将它作为wix安装程序的一部分进行部署时,连接失败。在进一步调试时,我发现调用dll函数的exe在系统上下文中运行,并且它尝试使用用户NT AUTHORITY \ ANONYMOUS LOGON进行连接,并给出错误[Microsoft] [ODBC SQL Server Driver] [SQL Server]登录失败用于NT AUTHORITY \ ANONYMOUS LOGON。
是否有可能使SQLDriverConnect在这种情况下选择当前的工作站用户而不是“匿名”用户?
Sample code below.
// Connect to data source
retcode = SQLDriverConnect(
hdbc,
0,
L"DRIVER={SQL Server};SERVER=TestMachine123;Trusted_connection=true;",
SQL_NTS,
OutConnStr,
255,
&OutConnStrLen,
SQL_DRIVER_NOPROMPT);
感谢 苏尼尔