如何在数据库创建SQL Server审计跟踪

日期: 2019-06-23 作者:Lindsay Moore翻译:邹铮 来源:TechTarget中国 英文

无论你的企业规模如何,在SQL Server等数据库系统中,你都会有各种各样的数据需要跟踪:用户登录、数据访问、安全保护等。根据IT架构师兼作家K. Brian Kelley的说法,为数据库审计目的收集和维护信息可能是一项艰巨的任务,但SQL Server提供很多工具,可帮助完成这项任务。

在最近的网络研讨会中,Kelley介绍了该数据库软件附带的审计功能,以及数据库管理员(DBA)应该如何利用它们来创建SQL Server审计跟踪,以记录系统中的操作细节信息用于安全性、合规性和管理目的。

SQL Server提供的众多审计工具之一是默认跟踪。该功能正处于维护模式,并且,微软不建议在新应用程序中使用该功能。但Kelley表示,该功能仍然可以提供一些有用的信息。Kelley是一位前SQL Server数据库管理员,目前在AgFirst Farm Credit Bank担任数据架构师。

例如,这个默认跟踪机制可用于审计用户登录情况,以检查应用程序问题或潜在的安全问题。Kelley称:“SQL Server使用户可以轻松捕获登录失败信息,这在很大程度上归功于默认跟踪。”

默认跟踪的主要工作是临时捕获对SQL Server的基础配置和模式的所有更改。Kelley指出,该功能的名称有点用词不当,因为它实际上包含四到五个小型跟踪文件。当存储容量填满时,SQL Server会根据需要滚动这些文件。因此,这个默认跟踪基本上是一组滚动的审计记录。

Extended Events提供新的审计跟踪

对于审计新应用程序,微软建议使用其SQL Server Extended Events性能监视工具,而不是默认跟踪功能。Extended Events 最早出现在SQL Server 2008中,目的是减少数据库性能调整和审计过程的处理影响。在SQL Server 2012中添加一组GUI后,该技术变得更加有用。

同样,Kelley强调应该使用Extended Events为SQL Server审计跟踪创建自定义跟踪,而不是运行SQL Server Profiler或服务器端跟踪,这是另外两种较旧的审计机制。

用户仍然可以使用SQL Trace Profiler构建客户端级跟踪,以及使用SQL Trace构建服务器端跟踪,但微软已经弃用这些工具。Kelley表示,它们构建的跟踪非常影响性能,并且它们已被SQL Server 2012中的Extended Events所取代。他指出:“如果要审计SQL Server 2008 R2之后任何版本中的新功能,你唯一的审计方法,唯一检测方法就是Extended Events。”

记录数据库登录的选项

对于登录,SQL Server自动配置为记录所有失败登录,但用户可以根据自身需求进行自定义。该系统可以重新配置为跟踪所有成功登录或所有失败和成功的登录。如果你有替代跟踪系统,你甚至可以禁用SQL Server的机制。

不过,Kelley警告说,在繁忙的系统上缓存成功登录会很困难,因为事件日志会很快开始覆盖这些数据。

Kelley说,为审计登录更改SQL Server的设置相对容易。首先,进入SQL Server Management Studio并右键单击Server,选择Properties,然后选择Security。 Security选项卡允许你选择四种登录审计选项:“无”、“仅失败登录”、“仅成功登录”或“失败及成功登录”。对于任何更改,SQL Server都需要重新启动;否则,它不会按照你想要的方式收集数据。

备选审计工具

数据库管理员可用的其他审计机制包括基于策略的管理,Kelley将其描述为“基本上是SQL Server的组策略”。这个基于策略的管理功能可用于在SQL Server的数据库引擎中强制执行策略设置,但他说它最适合用作“检查系统”,因为它可以验证SQL Server实例中的几乎任何内容。

Kelley认为大多数企业都没有充分利用基于策略的管理。但该工具也并非无所不能。他告诫说,这主要是一种“侦查控制”,因为它只会在问题发生后提醒数据库管理员注意问题。此外,基于策略的管理无法捕获谁在SQL Server系统中做了什么;它旨在确保配置保持你希望的状态,并在发生变化时提醒你。

数据定义语言触发器和登录触发器也可用于在数据库系统中构建SQL Server审计跟踪。例如,如果有人尝试登录或更改系统,则可以将其设置为触发警报。但Kelley表示应谨慎使用触发器,因为它们会增加处理开销并意外阻止进程。他在网络研讨会上补充说:“通常最好只审计正在发生的事件,”然后再解决问题。

Kelley表示,变更数据捕获(CDC)最初并非用于审计,其最初的意图是记录SQL Server表中的数据更改,以便用户只需处理已更改的内容以更新数据仓库。尽管如此,Kelley表示CDC也可用于审计,因为它还允许数据库管理员读取数据库日志文件。但是,他补充说,不应该使用此工具专用于此目的,只应作为最后的手段。

数据库审计员想知道的关键事情之一是,哪些用户可以访问数据库以及这些用户具有哪种访问权限。Kelley说,主要用户有两个主要级别的安全目录视图:sys.server_principals和sys.database_principals。sys.server_principals对应着登录。他指出,当数据库管理员试图确定谁实际上可以访问数据集,更重要的是,谁应该有访问权限时,这两个目录视图可以说是数据库管理员的“面包和黄油”。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

邹铮
邹铮

相关推荐