Active Directory、Web Apps 和 MS-SQL 是否都应该具有相同的用户?

Active Directory、Web Apps 和 MS-SQL 是否都应该具有相同的用户?

出于合规性原因,我正在寻找一种干净的方法在 MS SQL Server 中进行审计跟踪,最好完全在数据库端进行,而不涉及 Web 应用程序。

当谈到审计线索时,我指的是数据层面上对数据库更改的完整记录。那么,谁在何时更改了什么?

我有一个以活动目录作为身份验证后端的设置,并且我需要开发一个基于 Java 的 Web 应用程序。

因此,为了获得有效的审计线索,我需要了解谁在何时更改了什么。据我所知,有一项名为 SQL Server Audit 的功能可以提供这些信息。

我的问题是关于 MS SQL 方面的用户管理和身份验证。Web 应用程序应使用 AD 用户,然后访问数据库。因此,我同意 AD 用户需要由 Web 应用程序转发到 MS SQL DB,才能显示在审计跟踪中。

此 MS 文档似乎证实了这一点:https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions?view=sql-server-2017

这表明,在典型情况下,人们会尝试通过 AD 管理用户和组,并让 MS SQL 将这些组映射到数据库上的角色。这些角色又将被授予权限。

另一方面,我的一些同事说我们应该使用一个共享应用程序帐户来访问数据库,并在应用程序中自行构建审计跟踪。他们引用了模糊的安全原因。

什么是正确的做法?

答案1

所以你打算让一大堆用户访问你的数据库,却不提供审计线索?这不是你的同事有的“模糊的安全担忧”,而是简单的常识。数据库审计线索显示“此用户更新/插入/删除了该记录”。它没有说到底发生了什么,例如“此人于 20 日请假一天”(以休假管理系统为例)。数据库审计应该存在,以查看谁手动更改了数据。Web 应用程序应该有自己的审计线索(可以将其存储在数据库中)来记录其中发生的事件(Web 应用程序)。

相关内容