应用程序发布后SQL集成安全连接字符串不工作

应用程序发布后SQL集成安全连接字符串不工作,sql,sql-server,connection-string,Sql,Sql Server,Connection String,我正在使用集成安全性连接到sql数据库 这是我正在使用的连接字符串: Server=CRAIG_DAFF\\SQLEXPRESS;Initial Catalog=LairageScanning;MultipleActiveResultSets=true;Integrated Security=True; 在VisualStudio中工作时,连接到数据库没有问题。但是,当我将应用程序安装为服务应用程序时,会出现以下错误: Microsoft.Data.SqlClient.SqlException

我正在使用集成安全性连接到sql数据库

这是我正在使用的连接字符串:

Server=CRAIG_DAFF\\SQLEXPRESS;Initial Catalog=LairageScanning;MultipleActiveResultSets=true;Integrated Security=True;
在VisualStudio中工作时,连接到数据库没有问题。但是,当我将应用程序安装为服务应用程序时,会出现以下错误:

Microsoft.Data.SqlClient.SqlException (0x80131904): Cannot open database "LairageScanning" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\SYSTEM'.
不确定为什么会发生这种情况

  • 开放式SQL管理工作室
  • 连接到连接到的SQL Server实例
  • 导航到安全性
  • 打开“登录”文件夹
  • 双击NT权限\系统图标
  • 单击“选择页面”窗格中的服务器角色图标

  • 勾选服务器角色:窗格中的系统管理员复选框

  • 显然,应用程序正在以
    NT AUTHORITY\SYSTEM
    的身份运行,并且该应用程序无权访问该实例。在对实例具有(最低)访问权限的帐户下运行服务,或者创建一个新的(AD)帐户以及具有所需最低访问权限的相关SQL
    LOGIN
    USER
    (然后在该帐户下运行服务)。我的问题不是它不工作的方式。问题是为什么我在开发中使用相同的连接字符串在同一台计算机上运行它时,它会工作,而在VisualStudio中,它会工作,但当我发布它时,它不会工作。是否选择了其他Windows用户?由于您正在运行Visual Studio,@Cornelis,因此,您选择的服务帐户(在本例中为
    NT AUTHORITY\SYSTEM
    )正在运行该服务。当您使用受信任的连接时,您的凭据将连接到Visual Studio中的实例,并且当应用程序作为服务运行时将使用
    NT AUTHORITY\SYSTEM
    。“勾选服务器角色中的sysadmin复选框”-否!不不非常糟糕的建议。