如何从连接到同一工作组的其他计算机访问SQL Server数据库?


11

我创建了一个使用SQL Server数据库的C#应用​​程序。我有其他计算机连接到我,并且在工作组中彼此连接。我已经与他人共享了我的C#应用​​程序。当他们打开应用程序时,他们得到错误

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问

但是该应用程序在我的PC上运行正常。我正在使用的连接字符串是

Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159

存储在.config文件中。

该应用程序在我的PC上运行正常。我必须做什么?我已经在服务器中启用了TCP / IP,但是相同的错误仍然存​​在。连接字符串有其他变化吗?


1
尝试使用IP地址作为“数据源”
Mitch Wheat

1
尝试关闭Windows防火墙...也请检查technet.microsoft.com/en-us/library/hh231672.aspx。这应该对您有用

3
不需要关闭Windows防火墙-请停止传播这个神话!请参阅下面的答案。
乔恩·塞格尔

Answers:


17

为了允许远程访问,需要更改两个安全级别。

  1. SQL Server配置。在Express,Developer和Enteprise Evaluation版本中,默认情况下,禁用基于TCP / IP协议的连接。使用SQL Server配置管理器启用此功能。

  2. Windows防火墙。虽然完全禁用防火墙对于此组件有效,但这并不是安全性最佳实践(也不是必需的)。(注意:在本节中,我采用默认配置。可以更改许多设置,这些设置会稍微影响这些步骤。)

    根据要连接的SQL Server实例的类型,有两种情况:

    1. 默认实例(仅通过计算机名称连接)。在TCP端口1433或数据库引擎服务上添加允许传入规则。

    2. 命名实例(通过计算机名称+实例名称连接)。在UDP端口1434上添加允许传入规则,以访问SQL Browser服务。在数据库引擎服务上添加允许传入规则。

此过程已在此处完整记录,或者您可以看着我解释一下,然后在此处逐步浏览命名实例的配置。


0

您必须在SQL Server中设置正确的网络设置:SQL Server中的 活动TCP / IP 另外,请确保您的服务器浏览器服务正在运行,因为如果停止,则无法访问SQL-Server。服务器。


0

确保benbreg提到已打开sqlbrowser服务,并且您的计算机上已打开UDP 1434,以便客户端可以访问sqlbrowser来解析名称。同时打开命名实例的TCP / IP端口。

若要查找实例的端口,请使用Management Studio中的tcp:前缀进行连接,如下所示:tcp:ASHISHPC1 \ SQLEXPRESS,下面的查询结果应为您需要向工作组中的客户端公开的端口。

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID

-1

我为家庭网络关闭了Windows防火墙,它工作正常..谢谢大家.. :)


5
如果这是您的问题,则应使用在原始站点上使用的相同凭据(Stack Overflow)在此处登录,以便在此处获得对该问题的所有权。
jcolebrand

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.