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

3hvapo4f  于 2023-01-20  发布在  C#
关注(0)|答案(3)|浏览(200)

我有一个本地SQL Server数据库,我试图通过我的C#应用程序中的连接字符串连接到该数据库。
我已经尝试使用此连接字符串,我将Password留空,因为SQL登录凭据中没有提供密码:

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

我已启用TCP/IP并在SQL Server配置管理器中启动了SQL Web Browser,打开了端口1433,SQL Server配置为允许远程连接。我在C#中遇到错误
建立与服务器的连接时发生与网络相关的或特定于示例的错误。
我是否使用了错误的连接字符串?
我的SQL Server数据库登录名:

ruarlubt

ruarlubt1#

从附加的PNG中,您似乎正在使用SQLExpress。默认情况下,它不在TCP端口1433上启动。请在“配置管理器”-〉“网络配置”-〉"协议...“-〉右键单击TCP/IP,选择属性,然后单击IP地址选项卡中检查端口
滚动到底部,将IpAll部分下的TCP端口设置为1433,重新启动SQL Server,然后重试(或使用连接字符串中此处定义的任何端口)
我还建议使用SQL Server用户作为远程客户端,而不是Windows用户--这样可以很好地将其与Windows和域等分隔开。
确保您的SQL Server配置为混合模式:https://learn.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
yfwxisqw

yfwxisqw2#

您正在使用Windows身份验证,因此还必须设置集成安全性= true。请删除用户ID和密码。
如果Integrated Security = true,则连接字符串将获取运行应用程序的用户的凭据

pftdvrlh

pftdvrlh3#

我正在运行一个微软SQL服务器在我的macbook pro从2015 Docker容器,得到这个错误时,运行我的C# VS2022 API,并试图连接到数据库,不得不把Encrypt=True在我的连接字符串如下:"DefaultConnection": "server=localhost;database=newcomparer;trusted_connection=false;User Id=sa;Password=reallyStrongPwd123;Persist Security Info=False;Encrypt=True"

相关问题