gpt4 book ai didi

c# - 如何从 windows 服务使用 windows 身份验证连接到 sql-server?

转载 作者:可可西里 更新时间:2023-11-01 07:53:21 26 4
gpt4 key购买 nike

我用 C# 编写了一个 Windows 服务,它应该使用 System.Data.SqlClient 连接到 SQL-Server 2005 Express 数据库。

由于 Microsoft 更喜欢使用 Windows 身份验证而不是 SQL 身份验证,我尝试使用可信连接/集成安全连接到数据库。

但是这不起作用,因为我得到了:

System.Data.SqlClient.SqlException: Login failed for user'NT AUTHORITY\LOCAL SERVICE'.

是否可以使用不同的 Windows 帐户登录?

最佳答案

目前,该服务似乎在 LocalService Account 下运行并且此服务帐户当前未在 SQL 上获得授权。

可以通过以下两种方式之一修复这种情况:在 SQL 中授权的帐户下运行该帐户,或将 LocalService 帐户添加为 SQL 中的登录名。具体来说:

  • 在服务管理控制台中更改运行服务的帐户。 (例如:计算机管理 | 服务和应用程序 | 服务,然后右键单击相关服务的“属性”)
  • 或者,在“Microsoft SQL Management Studio”中,将 LSA 帐户添加为登录名,并以可以访问所需数据库对象的方式设置此新主体(登录名)。

编辑:第一种方法可能更可取,因为 LocalService 帐户在系统中非常普遍,授予它对 SQL 的访问权限会公开 SQL,而数据库会使用它的特定服务或驱动程序
相反,通过引入一个特定的帐户,人们可以更好地控制谁访问 SQL 对象以及如何访问。这当然带来了配置这样一个帐户的问题,关于它应该被授予的特权,在系统级别(而不是 SQL),并且取决于底层服务的作用,可能需要创建这个帐户相当强大,因此在其他方面有潜在的责任......

关于c# - 如何从 windows 服务使用 windows 身份验证连接到 sql-server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2244825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com