以编程方式连接到远程 SQL Server C++
Connecting to a remote SQL Server programatically in C++
我有一个C++ dll,其中包含连接到远程SQL Server的代码。为此,我使用 SQLDriverConnect API。当我从测试应用程序调用它时,它工作得很好。
但是,当我将其部署为wix安装程序的一部分时,连接失败。在进一步调试时,我发现调用 dll 函数的 exe 正在系统上下文中运行,它尝试使用用户 NT AUTHORITY\ANONYMOUS 登录进行连接,并给出错误 [Microsoft][ODBC SQL Server 驱动程序][SQL Server]用户 NT AUTHORITY\ANONYMOUS 登录失败。
在这种情况下,是否可以让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 );
谢谢苏尼尔
听起来这个可执行文件是一个Windows服务。您可以尝试在服务控制管理器中设置服务帐户。或者,您可以在 SQL Server 上为此检查创建一个登录帐户。为帐户提供必要的最低权限,然后使用安装程序部署帐户详细信息,并让可执行文件加载它们。需要使用用户名和密码更新连接字符串。
相关文章:
- 使用 SQLConfig数据源创建 SQL Server DSN 失败:关键字-值对无效
- 如何将QTime保存在SQL Server Express表中并读回?
- 无法从 SQL Server 检索数据
- 如何在将Visual Studio C++控制台应用程序连接到Microsoft SQL Server时修复"
- SQL Server-未找到数据源名称,也未指定默认驱动程序
- 我应该如何使用SQL Server CLR来使用由C++ / C编译的UDT
- 如何在C++代码中连接 SQL Server 数据库
- SQL Server 2017 C++ ODBC 连接在 Linux 上不起作用
- 从适用于 SQL Server 的 Azure 帐户获取 IP
- 通过 ODBC C++将带有日期时间的记录插入 SQL Server 2014 的问题
- SQL Server 2016 CLR 存储过程错误:"A system assertion check has failed"
- MFC 使用 ODBC 连接到 SQL Server
- 从.Net访问SQL Server与从Qt
- QODBC连接到SQL Server,但无法执行查询
- 如何在C 中连接到SQL Server
- ODBC 错误"String data, right truncation State code: 22001"与 SQL Server 数据库
- 在C++中通过SOCI/ODBC实现SQL Server存储过程
- 以编程方式连接到远程 SQL Server C++
- 如何与SQL Server 2008建立稳定的连接,并在C 中编码我的第一个CRUD操作
- Microsoft如何保护SQL Server二进制文件免受反向工程的影响