gpt4 book ai didi

c# - 远程计算机上的 SQL Server

转载 作者:太空狗 更新时间:2023-10-30 01:31:24 27 4
gpt4 key购买 nike

我在家庭网络中 IP 为 192.168.66 的计算机上有一个 SQL Server Express 实例。

我在端口 49170 上启用了 TCP/IP 并在 Windows 防火墙上添加了传入规则。

我有一个应用程序想安装在我网络中的不同计算机上。当我在 Visual Studio 中测试我的应用程序时,我无法连接到我在远程计算机上的实例。

<connectionStrings>
<add name="EquipamentoDal.Properties.Settings.ExtinguisherMngConnectionString"
connectionString="Data Source=192.168.1.66,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>

服务器名称是 DESKTOP-HU51203\EXPRESS。我做错了什么导致无法连接?

最佳答案

您的连接字符串未指定您要连接的命名实例,它仅指定 IP 地址,这意味着任何客户端都将连接到默认实例而不是命名实例。

默认情况下,SQL Server Express 的配置与“标准”版本的 SQL Server(标准版、工作组版、开发版和企业版)不同,如下所示:

  • 阻止传入的远程连接 - 这必须在 SQL Server 配置管理器中明确启用
  • 使用名为 SQLEXPRESS命名实例而不是配置为默认实例
  • SQL Server Express 在支持 AttachDb 方面也是独一无二的和 LocalDb - 其他 SKU/版本不支持 AttachDbLocalDb特征。

在您的情况下,您已经启用了远程连接并且您没有使用 AttachDbLocalDb ,所以你只需要配置你的客户端连接到一个命名实例:

您使用 <host>\<instance name>,<port> 格式在连接字符串中指定命名实例在Data Source=Server=参数,例如Data Source=foo\SQLEXPRESS,1433 ,或者在您的特定情况下:

Data Source=192.168.1.66\SQLEXPRESS,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True

您提到您是在家庭网络上执行此操作,这意味着您不太可能使用 Active Directory 或 Kerberos,并且假定 SQL Server Express 不会公开其用于其服务标识的密码(用户也不能通过网络验证为 NT AUTHORITY\NetworkService 这意味着您不能使用 Integrated Security=True(或等效的 Integrated Security=SSPI,但 SSPI 是首选值),您需要在您的连接字符串。

  1. 在服务器中创建一个新的登录对象(您需要首先以某种方式登录到服务器,本地或远程使用 sa 帐户(如果存在)
  2. 通过替换 Integrated Security=True 指定新登录的凭据与 User Id=<userName>;Password=<password>;

关于c# - 远程计算机上的 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41336451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com