【问题标题】:SQL Server: Determine domain user when using service accountSQL Server:使用服务帐户时确定域用户
【发布时间】:2012-04-04 22:50:55
【问题描述】:

我想将我的应用程序设置为使用服务帐户连接到 SQL Server,而不是通过域用户凭据。通过传递,必须授予特定用户对数据库的读/写访问权限,我认为这是一个安全漏洞。

我的问题是,如果我使用服务帐户凭据建立与 SQL 服务器的连接,是否仍然可以识别发起请求的实际用户? 例如,域用户 John Smith 访问网站并执行一些操作。使用某些服务帐户的安全凭据建立与数据库的连接,但 johh smith 的名称仍会传递到 SQL 服务器。 SQL 会以某种方式使用这个人的名字——例如将其存储在审计表等中。

这可以吗?考虑到我需要以某种方式将原始用户名输入 SQL 服务器,这是最佳做法吗?

【问题讨论】:

  • 对安全组使用 Windows 身份验证有什么问题?也就是说,授予组而不是个人用户的访问权限。
  • 因为这允许他们直接对数据库执行查询,绕过应用程序规则。您可能想要阻止这种情况的原因与您保护应用程序免受 SQL 注入攻击的原因相同。

标签: sql-server sql-server-2008 sql-server-2005 dns


【解决方案1】:

如果用户使用 SQL Server 登录名登录到 SQL Server,则无法通过 SQL 登录名知道他是谁(在域级别)。

however johh smith's name is still passed through to SQL server

是的,您可以使用 User.Identity.Name 以某种方式捕获 AD 用户名,然后将其发送到您自己手动创建的审核表上的 SQL Server

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2020-05-13
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多