1

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

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

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

4

1 回答 1

1

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

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

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

于 2012-04-04T14:50:55.627 回答