本篇文章主要介绍了"SQL Server安全(11/11):审核(Auditing)",主要涉及到方面的内容,对于SqlServer感兴趣的同学可以参考一下:
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇...
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间。
SQL Server审核
SQL Server里的审核指的是你可以在数据库或服务器实例里监控事件。审核日志包含你选择捕获的一系列事件,对于数据库和服务器对象,主体和操作,在服务器上形成活动记录。你可以捕获发生的几乎任何数据,同时包括成功和不成功的登录;读取的,更新的,删除的数据;管理任务;还有更多。审核可以深入数据库和服务器。
回顾追溯已经发生事件可能是一种很奇怪的方法。但设计日志常是你用来监控攻击的第一个且最好的资源,尤其是当攻击者只探测数据库还没有成功访问数据或进行破坏。但入侵发生时,监管部门和媒体会下来对你,审核日志就是可能会帮你找出发生了什么,什么数据被访问,和入侵的源头。没有日志,很可能你必须抓住攻击者并审问他们才可以明确知道到底发生了什么!
SQL Server有长期有提供支持审核的功能,但直到SQL Server 2008,审核才真正成为一个核心功能,有内建对象,T-SQL支持,在SSMS里有用户界面。微软从这个初始版本学到很多教训,在SQL Server 2012里做出一些漂亮的增强。其中一个最大的改变是微软在SQL Server的所有版本里支持审核,并不单单企业版。这就是说限制你可以在任何版本里,指定在所有的数据库里创建审核。但这个消息是混合的:只在企业、开发和评估版本里,可以进行单个数据库监控。因此如果你测试或评估SQL Server,最终在生产里使用企业版,确定你使用的版本有你需要的功能。
多年来推动的审核的一部分是全世界各个政府对不同类型组织的法律要求。结果,现在SQL Server用来保护世界上一些最严格的监管组织,行业和数据。
SQL Server审核对象
不管你使用T-SQL还是SSMS的用户界面操作审核,你会与三个对象打交道。
- 服务器审核:对于你的审核,服务器审核对象是最高级别的容器;你经常为一个审核使用这个对象。通常你会为特定的目的,创建服务器审核到组,包含一个或多个审核规范,例如承诺,或为一系列的服务器或数据库对象。你会使用这个对象到特定的审核名称,那里用来保存审核日志,限于日志,和在审核失败事件里发生了什么。你也可以定义筛选来给你在事件日志里颗粒级别的控制。
- 服务器审核规格:使用这个对象在审核日志里来定义特定服务器级别的事件来捕获。规格与你刚才创建的具体服务器审核相关。这里是你定义的地方,即你在想要记录的对象上的事件。
- 数据库审核规格:这个对象和服务器审核规格类似,除了你会在单个数据库里用它来捕获事件。它也和一个服务器审核对象关联。
你会经常用到服务器审核对象,连同一个或其它对象,取决于在日志里你想要捕获的事件类型。如果你想要记录的所有事件在单个数据库,使用数据库审核规格对象。否则,如果事件跨越两个或更多数据库,或是服务器级别的事件,使用服务器审核规格对象。
当你创建一个服务器审核时,你可以为审核日志选择三个位置之一:Windows应用程序日志,Windows安全日志,或文件系统里的一个文件。对你写入审核数据的位置你要非常仔细,因为它很可能包含像社会保障号,信用卡号,工资,企业财务数据等敏感信息。因此,你要使用未授权用户不能访问的位置。这就是说Windows应用程序日志不是个好选择,因为默认情况下,用户不需要更高的许可来查看它。但安全日志可以是个好选择,因为访问需要管理员许可。文件夹中的文件也可以是个好选择,因为你可以安全化文件夹或它里面的文件使用Windows内建的安全系统。
创建一个服务器审核