Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Sql连接字符串,试图从另一台计算机连接到本地数据库_C#_Sql Server_Connection String - Fatal编程技术网

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

C#Sql连接字符串,试图从另一台计算机连接到本地数据库,c#,sql-server,connection-string,C#,Sql Server,Connection String,我有一个本地SQL Server数据库,我正试图通过C#中的应用程序中的连接字符串连接到该数据库 我已尝试使用此连接字符串,但密码为空,因为SQL登录凭据中未提供密码: Data Source=myComputerIP,1433;Network Library=DBMSSOCN; Initial Catalog=myDataBase;User ID=myUsername;Password=; 我已在SQL Server配置管理器中启用TCP/IP并启动SQL Web浏览器,打开端口1433,

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

我已尝试使用此连接字符串,但密码为空,因为SQL登录凭据中未提供密码:

Data Source=myComputerIP,1433;Network Library=DBMSSOCN; Initial 
Catalog=myDataBase;User ID=myUsername;Password=;
我已在SQL Server配置管理器中启用TCP/IP并启动SQL Web浏览器,打开端口1433,SQL Server配置为允许远程连接。 我在C中遇到一个错误#

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

我是否使用了错误的连接字符串

我登录到SQL Server数据库:

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


如果integratedsecurity=true,则连接字符串将从附加的PNG中获取运行应用程序的用户的凭据,这表明您正在使用SQLExpress。默认情况下,这不会在TCP端口1433上启动。在Configuration Manager->Network Config->Protocols中检查端口…->右键单击TCP/IP,选择属性,然后单击IP地址选项卡

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

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

确保将SQL Server配置为混合模式:

然后,您可以通过SSMS创建登录名(用于数据库服务器)和用户(用于您希望他们访问的特定数据库),也可以使用以下脚本:

-- 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执行上述所有操作-在安全性节点下添加登录名,然后在登录名的属性中设置数据库级权限。如果您想重复这个过程,脚本的可管理性会更好一些

连接字符串如下所示:

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

能否检查sql服务是否正在运行?您可以通过转到服务并检查sql代理或sql server代理是否正在运行来检查这一点。…@Piyussanadhya除了sql server代理之外,其他一切都在运行。我已将启动模式设置为“自动”,并尝试在SQL Configuration Manager中启动服务,但出现以下错误:“请求失败或服务未及时响应。有关详细信息,请参阅事件日志或其他适用的错误日志”您能强制启动服务吗,有时也可以尝试重新启动系统:)@Piyussanadhya重新启动了系统,但仍然出现错误。将TCP端口设置为1433(TCP动态端口设置为49696),然后重新启动系统。现在,当我尝试连接我的C程序时,我遇到了另一个错误:用户登录失败:“”。我的连接字符串现在是:Data Source=MyIpAddress,1433;网络库=DBMSSOCN;初始目录=MyDb,集成安全性=True;这将尝试使用远程客户端PC的WINDOWS用户登录。您必须允许此用户通过SSMS中的安全机制进行访问。或者,只需将您的服务器设置为混合模式(windows+SQL server身份验证),然后添加一个具有密码的SQL server用户,并将其用于远程连接。我已编辑了答案,其中包含了有关使用SQL server auth而非windows的更多详细信息,因为我真的认为这是远程访问的最佳方法,并且可以在本地域之外使用它…我使用本教程创建了一个新的SQL管理员用户:[link](),并在连接字符串中使用了一个新的管理员凭据。并将SQL Server设置为混合模式。但我仍然收到“用户“”登录失败”错误。这让人非常沮丧:我在连接字符串中使用的IP地址是SQL server所在计算机的IP地址。这是正确的IP吗?是的,应该是打开SQL Server的PC。连接字符串中是否仍有“integrated Security=true”?如果是的话。它仍将尝试使用windows身份验证。如果有,请删除该位(请参阅我答案中的连接字符串示例)