C#SQL连接字符串,尝试从另一台计算机连接到本地数据库

时间:2018-08-31 06:46:41

标签: c# sql-server connection-string

我有一个本地SQL Server数据库,正在尝试通过C#应用程序中的连接字符串连接到该数据库。

我尝试使用此连接字符串,因为我没有在SQL登录凭据中输入密码,所以我将密码留空:

Data Source=myComputerIP,1433;Network Library=DBMSSOCN; Initial 
Catalog=myDataBase;User ID=myUsername;Password=;

我已启用TCP / IP并在SQL Server配置管理器中启动了SQL Web浏览器,打开了端口1433,将SQL Server配置为允许远程连接。 我在C#中遇到错误

  

建立与服务器的连接时发生与网络相关或特定于实例的错误。

我使用了错误的连接字符串吗?

我对SQL Server DB的登录: LOGIN CREDENTIALS

2 个答案:

答案 0 :(得分:0)

您正在使用Windows身份验证,因此还必须设置Integrated Security = true。删除用户ID和密码。

如果Integrated Security = true,则连接字符串将获取运行该应用程序的用户的凭据

答案 1 :(得分:0)

从附加的PNG中

看来您正在使用SQLExpress。默认情况下,它不会从TCP端口1433开始。在Configuration Manager->网络配置-> ProtocolsFor ...->中,右键单击TCP / IP,选择属性,然后单击< strong> IP地址标签

滚动到底部,将 IpAll 部分下的TCP端口设置为1433,重新启动SQL Server,然后重试(或使用连接字符串中此处定义的任何端口)

我还建议将SQL Server用户用于远程客户端而不是Windows,这样可以与Windows和域等很好地分隔开。

确保将SQL Server配置为混合模式: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/change-server-authentication-mode?view=sql-server-2017

然后您可以通过SSMS创建一个LOGIN(对于数据库服务器)和一个USER(对于您希望他们访问的特定数据库),或者您可以使用以下脚本:

-- Creates the login remoteuser with password 'Pa$$word11'.  
CREATE LOGIN remoteuser
    WITH PASSWORD = 'Pa$$word11';  
GO  

-- Creates a database user for the login created above.  
CREATE USER remoteuser FOR LOGIN remoteuser;  
GO 

--grant remoteuser 'datareader' rights
EXEC sp_addrolemember N'db_datareader', N'remoteuser';

--grant remoteuser 'datawriter' rights
EXEC sp_addrolemember N'db_datawriter', N'remoteuser';

您可以通过SSMS完成上述所有操作-在 Security 节点下添加一个登录名,然后在该登录名的属性中也设置数据库级权限。但是,如果您想重复该过程,该脚本将更具可管理性。

连接字符串如下所示:

Data Source=192.168.0.55\SQLExpress;Database=MyDatabase;user=remoteuser;password=Pa$$word11