c# - 登录失败。用户 'NT AUTHORITY\SYSTEM' 登录失败

标签 c# .net sql-server-2005

我创建了一个 Windows 服务,我的服务依赖于 SQL Server 服务。首先,SQL 启动,然后在启动 PC 或重新启动 PC 时启动我的服务。

这工作正常,但问题是 Windows 服务无法读取数据库文件,抛出异常“无法打开用户默认数据库。登录失败。用户‘NT AUTHORITY\SYSTEM’登录失败”,当我尝试读取数据库。

如果我启动计算机并登录,则它无法读取数据库,但如果我启动计算机并等待几秒钟,然后登录到窗口服务,它会读取数据库。

最佳答案

我打赌你的连接字符串中有这个:

Integrated Security=SSPI

或类似的东西。

现在运行该服务的帐户 (NT AUTHORITY\SYSTEM) 尝试连接到数据库 - 但无法连接,因为它没有被授权这样做。

您可以:

  • 在您的 SQL Server 中为 NT AUTHORITY\SYSTEM 创建一个登录名,并为其授予您的应用所需的必要权限

或者:

  • 您在 SQL Server 中创建一个特定的应用程序用户帐户(登录到 SQL Server 和数据库中的用户)并将您的连接字符串更改为:

    User ID=(your app account);pwd=YourPassword
    

关于c# - 登录失败。用户 'NT AUTHORITY\SYSTEM' 登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6894651/

相关文章:

c# - 为什么我的选择排序算法始终比插入排序算法快?

.net - 什么是背景,前景和主线程?

sql-server-2005 - 查询 SQL Server 2005 全文搜索干扰/停用词

c# - 如何从在线 .txt 文件中搜索或匹配文本?

c# - 是否可以在两个 excel 工作表之间设置外键?

sql - 我应该使用 sp_executesql 还是 EXEC 来运行存储过程?

c# - Xamarin XAML : Type is not found from external assembly

c# - specflow 中未命中断点

c# - 如何在带有单声道的 Linux 中使用 NLog?

c# - 使用 IP :PORT/PATH 的 TCPClient()