我们有一个 Microsoft Access 2010 数据库 (ACCDB)。
此 ACCDB 文件只是 Microsoft SQL Server 2008 数据库的前端。
对数据库的身份验证由 Windows 集成身份验证完成。
我在工作站上创建了一个系统 DSN。在 ODBC 连接窗口中,我选择 APP1 作为服务器名称,并能够从下拉列表中选择数据库(出于我们的目的,我们将其称为测试),当我选择完选项后,我测试连接(测试有效)。
我已经进入 SQL 并确认用户有权使用他们的 Windows 用户名登录到数据库。
当该用户(或其他用户)尝试登录时,他们会收到错误 ODBC——连接到“systemDSN”失败。
我已经打开了 ACCDB 文件并打开了链接表管理器。它显示所有 dbo 都指向我在计算机上输入的相同 DSN 名称。
我缺少一些非常简单的东西吗?有任何想法吗?
我检查了工作站和 SQL 服务器上的应用程序和安全日志,但没有看到任何登录尝试。
更新1:
如果我们在 32 位版本的 ODBC 中添加系统 dsn,我们会得到一个不同的错误。我们得到的错误是 Invalid use of Null 但每个字段都有内容。
如果我们将 64 位版本的 ODBC 中的系统 dsn 更改为用户 dsn,我们也会收到 Invalid use of Null 错误。
事实证明,设计数据库的那个人使用了三层登录。
有映射到 SQL 登录的 Windows 集成登录。之后,在 SQL 的一个表中可以找到另一个登录名。