用C ++编程连接到远程SQL Server

时间:2014-02-19 09:19:59

标签: c++ sql sql-server sql-server-2008 odbc

我有一个C ++ DLL,它有代码连接到远程SQL Server。 我为此目的使用SQLDriverConnect API。当我从测试应用程序调用它时,它工作得很好。

但是,当我将其作为wix安装程序的一部分进行部署时,连接失败。在进一步调试时,我发现调用dll函数的exe在系统上下文中运行,它尝试使用用户NT AUTHORITY \ ANONYMOUS LOGON连接并给出错误[Microsoft] [ODBC SQL Server驱动程序] [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 );

由于 苏尼

1 个答案:

答案 0 :(得分:0)

听起来这个可执行文件是Windows服务。您可以尝试在服务控制管理器中设置服务帐户。或者,您可以在SQL Server上为此检查创建登录帐户。为该帐户授予必要的最低权限,然后使用安装程序部署帐户详细信息并让可执行文件加载它们。您需要使用用户名和密码更新连接字符串。