Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
Sql 登录失败。用户登录失败';NT授权\网络_Sql_Sql Server - Fatal编程技术网

Sql 登录失败。用户登录失败';NT授权\网络

Sql 登录失败。用户登录失败';NT授权\网络,sql,sql-server,Sql,Sql Server,我无法摆脱这个错误。我已经通过SSMS添加了“NT AUTHORITY\NETWORK”用户,以及使用此线程作为参考的相关角色: 我正在尝试通过Windows服务建立数据库连接。在调试模式下,DB连接工作正常。当我实际尝试并运行安装的服务时,就是我遇到此错误时 以下是app.config中的我的连接字符串: <connectionStrings> <remove name="LocalSqlServer" /> <add name="LocalSql

我无法摆脱这个错误。我已经通过SSMS添加了“NT AUTHORITY\NETWORK”用户,以及使用此线程作为参考的相关角色:

我正在尝试通过Windows服务建立数据库连接。在调试模式下,DB连接工作正常。当我实际尝试并运行安装的服务时,就是我遇到此错误时

以下是app.config中的我的连接字符串:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Data Source=(LocalDb)\v11.0; database=MyDB; Integrated Security=True;" />
    <remove name="SqlServer" />
    <add name="SqlServer" connectionString="Data Source=(LocalDb)\v11.0; database=MyDB; Integrated Security=True;" />
    <remove name="SqlServer" />
  </connectionStrings>


我还尝试添加
User ID=myDomain\myUsername到连接字符串,但这没有帮助

在你用作参考的链接中,我认为杰德对你的问题给出了正确的答案。试试看。您应该添加“NT授权\网络服务”而不是“NT授权\网络”

我认为windows服务的默认用户是本地服务。因此,请尝试添加“NT授权\本地服务”

您还可以尝试更改运行服务的用户。尝试使用您的凭据运行该服务,看看这是否有帮助

我希望它能有所帮助。

首先阅读使用LocalDB。读到这些让我觉得可能无法使用“NT授权\网络服务”;我不确定。我想你需要使用你的证件

不太明显,但如果使用集成身份验证,则运行服务的凭据必须与有权访问数据库的凭据相匹配。如果您不想为服务使用凭据(即,您希望它在“NT AUTHORITY\NETWORK service”下运行),则需要将“NT AUTHORITY\NETWORK service”添加为对数据库MyDB具有足够访问权限的用户

如果可能,首先为MyDB将该用户设置为
db\u owner
。如果可行,那么开始将SSMS中的权限调整到较低级别。如果这不起作用,那么数据库配置还有其他问题。还要确保用户“NT AUTHORITY\NETWORK SERVICE”对MyDB正在使用的文件具有文件系统访问权限


另外,您还有一个额外的
,在末尾…不确定这是否是故意的。

您可以指定Windows服务使用的用户帐户。如果服务使用集成安全性连接到数据库服务器,则必须在数据库服务器上授权相同的用户帐户。最好创建一个专用用户,以便在需要时可以微调授权。遵循以下步骤:

  • 在运行该服务的计算机上,创建一个新的Windows用户(例如MyUser)
  • 在SQL Server Management Studio中,展开服务器实例,然后展开安全性。右键单击登录并选择新建登录。。。输入登录名
    NameOfMachineRunningTheService\MyUser
    并选择Windows身份验证。修改页面服务器角色和用户映射的设置;出于测试目的,您可能希望分配大量权限(例如服务器角色sysadmin),但在生产环境中,出于明显的安全原因,您应该将此权限降至最低
  • 在计算机管理-服务中,右键单击服务并选择属性。在“登录”选项卡上,选择此帐户并填写
    \MyUser
    。输入用户密码(两次),然后单击“确定”。如有必要,请重新启动服务

感谢您的反馈。我确实添加了“NT授权\网络服务”,我还添加了“NT授权\本地服务”。不幸的是,这两种方法都没有消除错误。我希望不必为此使用凭据,但作为最后手段,我将尝试使用凭据。谢谢。您不想为服务使用凭据有什么原因吗?您是否将“NT AUTHORITY\NETWORK service”设置为
db\u owner
?事实上,我为NT AUTHORITY\NETWORK service设置了db\u owner。我没有连接到SQL Server的凭据,我使用Windows身份验证对其进行了设置。我使用Windows身份验证对SQL Server进行了设置,因此我实际上没有用于连接的密码。这可能是问题所在吗?我已经为NT授权\网络服务用户设置了db\U所有者。我不知道如何检查它是否具有文件系统访问权限。谢谢你抓到额外的“删除名称”行,我已经删除了。不过还是一样的错误。哦,我应该补充一点,我没有使用SQLServerExpress。我经常使用SQL Server 2012,但阅读您链接的那篇文章后,我觉得我应该使用不同的方式来连接Windows服务。好的,在将我的数据库连接到本地计算机并添加网络服务和本地服务的登录名后,我就能够正常工作了。我想主要的问题是LocalDB不允许从NT AUTHORITY\NETWORK服务进行连接。这也可能是由于组策略不允许服务帐户。安装的服务运行为哪个用户帐户?您是否指向正确的SQL Server实例?(在连接字符串中)