间歇性 ODBC 连接失败

2023-12-26

我们正在开发一个内部 32 位应用程序。该应用程序连接到 SQL Server。测试环境为SQL Server 2008 R2,上线环境为SQL Server 2014 SP2。

使用以下 ODBC 字符串建立与数据库的连接:

Driver={SQL Server};Server=<redacted>;Database=<redacted>;Trusted_Connection=Yes;

该数据库的用户属于“域本地”安全组。我们有来自三个不同 AD 域的用户作为该组的成员。该组被定义为 SQL Server 的登录名和目标数据库的用户。在测试环境中,这个效果很好。

在实际环境中,只有部分用户能够成功连接数据库。有趣的是,位于安全组但与服务器不在同一域中的用户可以连接。与服务器位于同一域中的用户不能。 (我没有检查过所有 25 个用户,但这就是我看到的模式)。拥有数据库服务器系统管理员权限的用户(比如我)没有任何问题。

我已经仔细研究了我能想到的所有事情,试图找出为什么它在一台服务器上工作但在另一台服务器上不起作用,但没有运气。我尝试过以用户身份删除该组并重新添加,将用户从该组中取出然后重新放入,等等。 SQL Server 服务在两台服务器上的同一域帐户下运行。

任何见解都值得赞赏。


过去我遇到过很多问题,以下方法有效:

  1. 导航至开始|微软 SQL Server 2014 | SQL Server 2014 配置管理器。

展开 SQL Server 网络配置,然后单击 2008 实例。执行此操作后,在您的右侧,您会注意到共享内存、命名管道和 TCP/IP。打开命名管道并启用它(如果已禁用)。打开 TCP/IP 并启用它,但在 TCP/IP 上,您还会注意到一个名为“IP 地址”的辅助选项卡。单击此选项卡并为所有 IP 地址(或仅您要激活的 IP 地址)单独启用每个 IP 地址。 您还会注意到,有一个 TCP 端口,其中 SQL 的默认端口是 1433。但是,当您在同一台计算机上安装了多个 SQL 实例时,我通常会拆分端口号。即第一个实例,我设置为 1433,第二个实例,我设置为 1435。请参见下面的屏幕截图:

请注意,我删除了 TCP 动态端口中的零。

当你到达最后时,将其设置为如下屏幕截图:

完成所有设置后,单击“应用”、“确定”,然后单击“确定”。

  1. 导航至开始|跑步。

输入 cliconfg(您必须在每台有连接问题的计算机上执行此操作),然后单击“确定”。

启用命名管道和 TCP/IP,然后勾选启用共享内存协议选项,如下所示:

单击“应用”,然后单击“确定”。

  1. 导航到“开始运行”,输入 services.msc,然后单击“确定”。

导航到 SQL Server 的两个实例并重新启动它们。

另请打开 SQL Server 浏览器,将其从“禁用”更改为“自动”,然后输入您的 AD 用户名和密码。

单击“应用”和“确定”,然后启动浏览器。

如果此后您仍然遇到连接问题,请尝试禁用 Windows 防火墙或添加端口例外(如答案中前面所述)。

如果您仍有问题,请回复此答案,我将进一步帮助您...

Edit:

在工作站上,单击“开始”|“运行,然后输入cliconfg并单击“确定”。

启用 TCP/IP 和命名管道,然后勾选该选项启用共享内存协议并单击“确定”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

间歇性 ODBC 连接失败 的相关文章

  • SSRS。如何在table1_Details_Group右侧创建新的行组?

    我正在使用 Microsoft Visual Studio 2013 创建报告 PROBLEM 如果我添加新的Row Group前面会自动添加table1 Details Group 问题 如何更改组的顺序或在右侧添加新组table1 De
  • SQL Server 查询结果集的大小

    SQL Server 中是否有确定结果集中 Mgmt Studio 查询中返回的数据大小 以 MEGS 为单位 您可以打开客户端统计信息 查询菜单 包括客户端统计信息 它给出执行查询时从服务器返回的字节数
  • SQL Server 使用通配符加入并在第一个匹配处停止

    IF OBJECT ID tempdb TABLE1 IS NOT NULL DROP TABLE TABLE1 IF OBJECT ID tempdb TABLE2 IS NOT NULL DROP TABLE TABLE2 CREATE
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • 案例陈述以确定我是否应该结合

    我目前想做某种条件联合 给出以下示例 SELECT age name FROM users UNION SELECT 25 AS age Betty AS name 假设我只想在 用户 计数 gt 2 时合并第二个语句 否则不合并两者 总之
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑
  • 对具有许多索引的表进行缓慢的批量插入

    我尝试将数百万条记录插入到具有 20 多个索引的表中 在上次运行中 每 100 000 行花费了 4 个多小时 并且查询在 3 5 天后被取消 您对如何加快速度有什么建议吗 我怀疑是索引太多的原因 如果你也这么认为 如何在操作前自动删除索引
  • 自动创建n列表

    我想在一行中将 236 个 int 值存储到 sql 中 现在我必须声明该表 但我不想输入 236 倍的列名 列名应该是 BYTE001 BYTE002 或其他前缀 如 BYTE B INT 可以自动生成ColumnNames吗 我尝试以下
  • 计算树中值的总和(递归查询)

    我在表员工 id name parentid 中有树结构 并且该表可以嵌套 employees 与另一个具有列 id employeeid quantity 的 Sales 表是一对多关系 每个员工都有销售数量 我想计算每个员工以及儿童员工
  • 仅基于月份和年份的 SQL Server 日期比较

    我无法确定仅根据月份和年份比较 SQL 中的日期的最佳方法 我们根据日期进行计算 由于计费是按月进行的 因此该月的日期会造成更多障碍 例如 DECLARE date1 DATETIME CAST 6 15 2014 AS DATETIME
  • 在 Sql Server 中启用 DTD 支持

    我有各种 xml 文档需要存储在数据库列中 这些文档包含对 DTD 的引用 并且 SQL Server 不会导入 xml 因为它存在安全风险 如何在数据库上启用 DTD 支持 以便它可以让我插入 xml 内容 你必须CONVERT首先 MS
  • 临时表上没有外键限制? SQL Server 2008

    我知道临时表只会在 SQL Server 会话打开时存在 但为什么不能对它们进行外键限制呢 想象一下这样的场景 您创建从临时表到具体表的键的外键关系 外键关系的限制之一是您无法从临时表所依赖的键表中删除行 现在 通常当您创建外键关系时 您知
  • SSIS Excel 文件问题 - 创建文件失败

    我有 SSIS 包 可以抓取 excel 文件并将其加载到 sql 表中 运行它时出现以下错误 我尝试将 64 位运行设置为 false 那不起作用 我还安装了 64 位访问驱动程序引擎 这也没有帮助 数据流任务 Excel 源 2 出错
  • SSIS-从 Sharepoint 下载 Excel 并将其加载到 SQL 数据库

    我目前遇到的情况是共享点网站上有一个 Excel 文件 我需要将该 Excel 文件加载到数据库中 Excel 文件有多个工作表 我尝试过以下方法 但运气为零 方法 1 我访问 sharepoint 站点并访问 库 选项卡 并选择使用资源管
  • 无法通过 SQL Server Management Studio 连接到 SQL Server Linux Docker 容器

    我对 Linux 操作系统很陌生 所以希望这不是一个愚蠢的问题 软件 Windows 10 专业版适用于 Windows 的 Docker 1 13 0 beta38 9805 SQL Server Management Studio v1
  • 使用输出在合并语句中设置变量

    我有一个合并语句应该始终更新或插入一条记录 我想记住变量中该语句的 ID 它看起来像这样 DECLARE int int MERGE dbo table AS A USING SELECT stringtomatch AS string A
  • SQL最近的命令?微软SQL

    我只是编写一个查询来查看我的客户数据库并列出他们下了多少订单等 我正在努力添加到此查询中的是只显示该电子邮件的最新 OrderID 有任何想法吗 这是我的查询 select top 1000 BuyerEMail COUNT HowMany
  • 有没有适用于 Eclipse 的 SQL 格式化插件?

    我在网上没有找到任何标准的开源 sql 格式化程序 eclipse 插件 我正在使用日食太阳神 我可以找到编辑 gt 格式化SQL但这似乎不起作用 找到一个在http ventralnet blogspot in 2010 11 sql b
  • 将 MS Access 连接到网络上的 SQL Server

    我在 Windows 服务器上安装了 SQL Server Express 我有 10 个人在本地 PC 上安装了 MS Access 2016 假设数据库非常小且简单 连接 SQL Server 最简单的方法是什么 简单的 ODBC 可以
  • SQL Server 2017 快速安装失败

    我尝试在 Windows 10 上安装 SQL Server 2017 Express 但失败 这是失败后向我显示的详细信息 Action required Use the following information to resolve

随机推荐