SQL 服务器连接错误 - 服务器不存在或拒绝访问

SQL Server Connection Error - Server Does Not Exist or Access Denied

我们正在尝试将 Access 后端迁移到新的 SQL 服务器数据库,但在尝试从网络上的客户端计算机连接到数据库时遇到错误。我已经查看了网络上的大量文章,并且已经能够排除很多可能的原因,但我仍然被困住了,希望能有任何见解。

这是背景:

当我将新的访问前端连接到网络上的客户端计算机并尝试创建到新数据库的连接时,问题就开始了——我得到了

Server Does Not Exist Or Access Denied Error Message.

我已经尝试了很多进程来连接,但总是出现同样的错误。为了尽量减少变量,我的测试现在使用在 Hyper V 机器上成功的相同 DSN 文件的副本。

这是 DSN 内容:

[ODBC]
DRIVER=SQL Server
DATABASE=JobFileDat_SQL
WSID=WORKFILE
APP=Microsoft Office
Trusted_Connection=Yes
SERVER=WORKFILE\WORKFILE
Description=test via new data source

这是我到目前为止所做的:
o 已验证 SQL 服务器
o 是运行宁
o 它确实允许远程连接
o 添加了新的入站防火墙规则以允许流量通过客户端计算机
上的端口 1433 o 验证我可以 ping 来自客户端机器的 Hyper V 机器
o 在 Hyper V 机器上,我有 运行 SS 配置管理器
o 我启用了命名管道和 TCP/IP
o 我什至尝试创建一个新的防火墙规则来支持端口 1433

上的出站流量

鉴于我可以 run/connect 在 HyperV 计算机上,我假设问题与网络相关,但这肯定不是我的专业领域。因此,我欢迎任何进一步的见解或建议。

非常感谢,

大卫

由于是 SQL 快递,请验证以下内容:

  1. 确保 SQL Browser 服务在 Hyper-v 主机中 运行,其中 SQL Express 是 运行。
  2. SQL Browser 服务启动后,在绑定防火墙规则
  3. 中启用端口 1434(TCP 和 UDP)
  4. telnet <hostname/ip> 1433如果一切顺利,telnet一定成功。否则,您可以按照 these steps 进行进一步的故障排除
  5. 如果 telnet 有效,您似乎一直在使用受信任的连接,请确保相同的 (windows) 用户可以访问 SQL Express 服务器

我建议您 link 使用 FILE dsn 的表。 Access 会为您将 FILE dsn 的自动转换为无 DSN。在你 link 表格之后,DSN 将被忽略并且不被使用(也不是必需的)。因此,如果您使用了 FILE dsn,那么更改 DSN 将不会更新 linked 表,直到您重新 link 为止。 (这可能是你的问题)。

这表明您必须在客户端计算机上重新link(如果您在启动时没有某些 VBA 代码来重新link)。一旦你重新 link 完成本手册,那么你应该能够将编译的 accDE 前端分发到每个工作站,并且不必在每个工作站上设置 DSN,实际上你作为一般规则甚至不必重新 link 表格。所以,我会选择一个 FILE dsn,因为这绕过了必须使用注册表的问题(system/user DSN 都使用注册表 - 而你这些天经常需要提升对 edit/modify 注册表的权限无论如何设置)。所以使用 FILE DSN 可以避免这些安全问题。请注意,在您可以实际连接之前,您不能预先 link 表格。因此,我会放弃使用 system/user DSN,因为安全问题会妨碍您。