概要:关于SQL Server 审计,SQL Server 2008引入了一项重要的新特性,即为企业级客户提供了一种真实的审计解决方案。虽然SQL跟踪能很好的满足大多数审计需求,SQL Server审计提供了一些具有吸引力的优势,藉此可以帮助DBA更容易的达到像满足合规性需求这样的目标。包括提供了审计日志的集中存储,系统中心集成,以及更加显著的性能。可能最显著的是,SQL Server审计允许粒度审计,据此审计可以对特定的对象采取具有针对性的行动。本文对引入的新特性以及相应的使用说明,进行了全方位的描述,并提供了一些实例。
其它翻译版本 (1) 加载中任何数据安全性策略最重要的一项能力是能追踪谁访问过或者企图访问你的数据。这提供了检测未授权的访问企图或者有必要,能找到内部有恶意的人员误用了他们的合法访问的能力。另外,丰富而强大的跟踪能力能对管理员对敏感配置所做的更改进行监督。
在当今的信息时代,此种考虑更加贴近实际。数据收集、存储、使用以及滥用都在以前所未有的速度增长。世界范围内的政府和私营部门组织,通过建立各种合规制度,以提高对那些持有数据的管理。其中一些广为人知的例子包括:
这些正式的法规对世界各地的所有行业,各种规模的组织都产生了影响。为了确保他们的IT平台和实践相兼容,他们给组织施加了巨大的压力。最终,这些需求被传达给了管理数据的DBA,开发者以及IT专业人士。
提供一种满足这些需求并如此高效的数据管理平台是非常重要的。为了满足这些需求,SQL Server 2008引入了一种丰富而高度集成的审计能力,(这种能力)能对造地微软SQL Server数据库软件提供重大的改进。
本文将重温SQL Server2008最新的审计特性,并将其与过去的版本进行比对,在此过程中将贯穿一些实例。
在SQL Server 2005及早期的版本中,通过使用一组工具组合来实现审计。在服务器级别,登陆成功或失败的记录都记录在Windows操作系统的应用日志和SQL Server的错误日志里。登录触发器,服务器触发器,DDL触发器能对特定类型事件进行自定义审核。详细的活动审计工具的首选却是SQL 跟踪工具。SQL 跟踪工具是一种监测SQL Server数据库引擎所涉及的广泛范围内的内部事件的机制。它被用来侦听死锁,监测应用程序的性能,调试,以及其他一些扩展或管理目的。由于(SQL Trace)能捕捉包括用户ID在内的所执行的单条语句,因此作为一种审计工具非常有用。
但作为审计工具,SQL Trace有它自身的局限性。配置个管理跟踪要求使用单独的工具,那就是SQL Server事件探查器。该工具被多数开发者和管理员所喜爱,但它没有被继承到SQL Server Management Studio中,主要的SQL Server管理界面。而且,它的接口不关注具体任务的创建和管理信息的审计。在Transact-SQL级别,跟踪是通过一组以不可见的数字代码作为参数而不是做诱人的管理API集合的系统存储过程来配置的。
在SQL Server 2005中的跟踪功能以编程的方式通过Server管理对象进行访问。然而,SMO跟踪类依赖于SQL Server事件探测器授权的二进制跟踪定义文件,因此他们并不真正作为一个独立的API,用于管理服务器审计。
最终,由于SQL Trace是一类多用途工具,因此它并不能完全对审计员关注的问题进行解答。当作为一种审计工具使用的时候,SQL Trace捕获报表。但这并不需要对某一用户读取或修改的信息全部暴露。当真正的问题如“谁从该(数据库)表中读取了数据?”出现后,报表可能会涉及到视图,存储过程或用户自定义函数这些案例将会被要求进行深入分析。
以上所有的工具描述在SQL Server2008中依然存在,他们对于各种各样的需求依然有用。但SQL Server2008对于(数据库)表赋予了一种新的,更加专注的,更高度集成的审计能力。
SQL Server 2008企业版通过在数据库引擎中引入本机审核功能,从而增强了服务器的审计能力。新的SQL Server审计特性保留了SQL Server2005审计解决方案的所有能力,并增强了如数据目标审计和细粒度审计的灵活性。
在SQL Server 2008中,SQL Server 审计特性有意替代SQL Trace作为首选的审计解决方案。SQL Server审计的目的在于提供丰富的审计功能与唯一审计功能,不像SQL Trace,还用于性能调试。最终,设计SQL Server审计的主要目标如下:
随后的章节将逐一讨论如何实现上述设计目标。
如前面提到的,SQL Server审计现在对服务器进行本地审核。这得益于新SQL Server审计在性能上的优势与允许审计对象作为第一类数据库对象被创建。作为第一类对象,意味着通过Transact-SQL DDL 语句(如果你喜欢的话,也可以通过SQL Server管理工具)进行审计对象的创建和操作。此外,通过数据库的熟悉的权限模型保证审计对象的安全。
当审计对象被创建时,必须指定审计事件的目标。典型的目标是大多数情况下都适合的文件。然而,在SQL Server 2008中,审计事件同样可以被写入Windows应用程序日志。这有利于在某些情况下,访问审计信息,通过管理应用程序进行整合。另外,学Windows安全日志那样能将审计作为一个目标进行标记(开始于Windows Server® 2003操作系统)的非常安全意识将大受欢迎。这样做的意义在于,Windows安全日志被认为是抗篡改和不可抵赖的。使用安全日志的另一个好处是微软系统中心操作管理器的审计收集服务能被用来从多台机器中安全的收集审计信息并产生综合报告。
最终也是最重要的要提的一点是,在SQL Server 2008中的SQL Server审计是可以指定粒度进行审计。审计活动用户,角色或组数据库对象,能够被限制到表级别以下。这也就是说,你能针对SQL Server审计来追踪指定的活动用户或降到单表级别以下的用户。例如,SQL Server审计允许一条记录由所有的工资表更新以DBO的方式组成。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务