本篇文章主要介绍了"SQL Server安全(11/11):审核(Auditing)",主要涉及到方面的内容,对于SqlServer感兴趣的同学可以参考一下:
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇...
插图11.9:包含用户自定义信息的审核日志条目
提示:如果USER_DEFINED_AUDIT_GROUP服务器审核规范停用的话,SQL Server会忽略sp_audit_write。
筛选审核事件
SQL Server也包含筛选写入审核日志事件的能力,这个和扩展事件使用同样的筛选机制。筛选给你颗粒度的控制,SQL Server写入审核日志的内容。但是SQL Server还是为你在规范里定义的事件生成所有的日志条目,然后使用筛选来觉得是否写入事件到日志,理解这个非常重要。因此你还是有大量的日志事件生成,即使这些条目不写入日志。这就是说还是为特定的对象创建审核事件,而不是筛选它们。
现在假设你想创建一个审核,记录特定类型的所有事件,除用特定登陆关联之外。代码11.7第一部分在AdventureWorks2012数据库里创建carol登录和登录的用户。然后使用SUSER_ID方法获得新用户的主体ID(这里是267)。然后第二部分创建一个服务器审核使用WHERE子句筛选主体ID不为267的事件,并启用服务器审核。现在carol在数据库里有自由领域,在服务器审核事件里是安全的。
CREATE LOGIN carol WITH PASSWORD ='GEP2zYDt+5Cqw';
CREATEUSER carol FOR LOGIN carol;
SELECTSUSER_ID('carol');
-- Part 2: Create the server audit-- Change principal id from 307 based on SUSER_ID from previous statementUSE master;
GOCREATE SERVER AUDIT FilterAudit
TO APPLICATION_LOG
WITH( QUEUE_DELAY =1000 ,ON_FAILURE =CONTINUE)
WHERE server_principal_id <>267;
ALTER SERVER AUDIT FilterAudit WITH (STATE =ON);
GO
代码11.7:在AdventureWorks2012数据库里创建一个登录和用户,然后创建除这个用户外的服务器审核
你也可以只用审核属性对话框筛选事件,在对象浏览器里右击服务器审核,在弹出菜单里选择属性。选择【Filter】页,如插图11.10所示。注意,这里没有WHERE语句。
