sql server 2008用户'NT AUTHORITY\NETWORK SERVICE'登录失败

use*_*257 2 sql-server asp.net connection-string sql-server-2008

我试图在.net框架4的Windows Server 2003上将我的网站连接到我的sql server 2008 r2

这是连接字符串:

<add name="TestDbConnectionString" 
     connectionString="Data Source=(local);Initial Catalog=RESv5;integrated security=SSPI;"
     providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

我有一个例外,那就是:

用户'NT AUTHORITY\NETWORK SERVICE'登录失败.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Data.SqlClient.SqlException:用户'NT AUTHORITY\NETWORK SERVICE'登录失败.

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

我看到这个问题用户'NT AUTHORITY\NETWORK SERVICE'登录失败了,我试图让用户命名为NT AUTHORITY\NETWORK SERVICE但我仍然有问题,

EDIT1

我已经尝试使用用户名和密码.这是连接字符串

<add name="TestDbConnectionString" 
     connectionString="Data Source=(local);Initial Catalog=RESv5;integrated security=SSPI;User Id=sa;Password=myPassword;"
     providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

但仍然有问题

Ale*_*dro 7

您正在使用Windows身份验证进入服务器,因此它使用来自客户端的Windows帐户访问来验证访问/权限.在开发中,"客户端"实际上是VS开发服务器,但是当您部署到真实的Web服务器时,"客户端"作为另一个帐户运行,用于启动其服务的帐户,而不是您的.

通常SQL Server在安装时配置为允许您自己sysadmin访问,但对其他用户几乎没有其他任何东西,这就是您拒绝访问的原因.一种选择是使用带有用户/密码的SQL身份验证.在安全方面,如果同一个Web服务器运行许多网站(因为它们可能与彼此的数据隔离),这将是最佳选择.

如果您绝对想要使用Windows身份验证,真正的解决方案是为NT AUTHORITY\NETWORK SERVICESSMS 的内置帐户授予权限:

CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS WITH DEFAULT_DATABASE=[RESv5]
GO
USE [RESv5]
GO
CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE]
GO
ALTER ROLE [db_owner] ADD MEMBER [NT AUTHORITY\NETWORK SERVICE]
GO
Run Code Online (Sandbox Code Playgroud)