我们将应用程序的一部分作为 Windows 服务运行,它需要能够访问 DSN 才能通过 ODBC 导入。然而,通过反复试验发现它可以访问的 DSN 似乎有很多限制。例如,它似乎不能 1. 除非运行该服务的帐户具有管理员权限,否则访问系统 DSN。 (尝试连接时出现拒绝访问错误) 2.访问由不同用户创建的用户DSN(这个是可以理解的)。 3.通过网络访问文件DSN
我读到文件 DSN 的目的是允许其他计算机使用它进行连接,但我似乎无法做到这一点。
所以有没有人知道,或者知道我在哪里可以找到使用 Windows 服务时访问 DSN 的所有规则和限制。 谢谢
最佳答案
这介于您的#1 和#2 之间:有时还需要正确的文件权限。我曾经在连接到 DB2 DSN 的 Vista 机器上遇到过麻烦,因为无论出于何种原因(可能是为了写出临时文件;虽然我不知道为什么它会在这个位置而不是用户特定的位置做这样的事情) , 驱动程序需要对 IBM 安装客户端二进制文件和库的目录进行写访问,这是由管理员完成的,位于 C 驱动器的根目录中。
关于c++ - 访问 DSN 有哪些访问限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/127608/