我有一个要求,只要“sa”用户帐户登录到 SQL Server 2005 实例,我就需要进行审核(并且可能会收到通知)。此外,还有一个偏好是登录访问的数据库也被审计。
我知道我可以在较新版本的 SQL Server 中使用扩展事件或服务器审核,但由于我仅限于 SQL Server 2005,我能想到的唯一选择是:
- 为“sa”用户的用户登录事件设置服务器端跟踪到表中
- 设置一个作业,以指定的时间间隔通过电子邮件发送表格的内容
2005 年是否有更有效的方法来实现这一目标?
我有一个要求,只要“sa”用户帐户登录到 SQL Server 2005 实例,我就需要进行审核(并且可能会收到通知)。此外,还有一个偏好是登录访问的数据库也被审计。
我知道我可以在较新版本的 SQL Server 中使用扩展事件或服务器审核,但由于我仅限于 SQL Server 2005,我能想到的唯一选择是:
2005 年是否有更有效的方法来实现这一目标?
我会说考虑登录触发器来实现这一点。这样您就不会使用服务器端跟踪。您还可以审核 SQL Server 错误日志中的所有成功登录(右键单击实例、属性、安全性,然后选择成功和失败的登录。但我不相信这会显示数据库上下文信息)
另外 - 如果可能的话,我会认真考虑升级到更高版本的 SQL。SQL 2005 是两个(如果算上 2008 R2,则为三个)版本。我知道你可能知道,但如果我不说出来我会很难过:-)
我也强烈反对使用 SA 进行任何登录。SA 是一个高度特权的帐户。它是 SQL Server 中的高特权帐户。每个人都知道有一个名为 SA 的帐户,它很容易遭到黑客攻击。我倾向于只推动 Windows 身份验证,并确保添加一个适当的 DBA 团队可以正确且安全地添加到的组。我经常在混合模式下禁用 SA 帐户,并将创建另一个具有 SA 权限但名称不具描述性的帐户。如果出于某种原因,SA 帐户需要保留,我会尝试给它一个可怕的密码并将其存储在一个非常安全的地方而不使用它。
由于没有太多人使用的 SA 帐户,您需要审核其使用情况,您可以授予更精细的权限以在 SQL 中执行所需的活动,仅此而已。与观看 SA 帐户活动相比,最低权限和严格的访问列表将使您走得更远。
无论如何,登录触发器可能是最好的选择。跟踪可以工作,但有相关的成本(也有登录触发器,但我猜跟踪的成本对你来说会更贵)