使用SQL Server审计实现安全管控
1. 什么是SQL Server审计?
SQL Server审计是SQL Server数据库引擎提供的一种安全机制,可通过跟踪和记录数据库引擎中的事件来增加安全性并符合合规性要求。
SQL Server审计功能提供了对于几乎所有数据库引擎操作、管理操作和Windows级别的操作事件的支持。可以使用SQL Server管理工作室或者T-SQL来配置审计跟踪,审计跟踪可以选择以文件方式或应用程序方式输出。使用SQL Server审计功能可以监测数据库中所发生的大量事件 ,并跟踪这些事件的详细信息。
2. 如何开启SQL Server审计?
为开启SQL Server审计,必须先对 SQL Server 实例或数据库启用审计功能。在SQL Server 中,可以为特定数据库或整个实例启用审计策略。
可以使用 SQL Server 管理工具,如 Microsoft SQL Server Management Studio (SSMS) 或 Transact-SQL,来管理 SQL Server 审计功能。
下面是开启SQL Server审计的示例代码:
USE master
GO
CREATE SERVER AUDIT MyAudit
TO FILE ( FILEPATH = 'C:\Audits\' )
WITH ( QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE );
GO
ALTER SERVER AUDIT MyAudit WITH (STATE = ON);
GO
USE AdventureWorks
GO
CREATE DATABASE AUDIT SPECIFICATION AuditAdventureWorks
FOR SERVER AUDIT MyAudit
ADD (SELECT, INSERT, UPDATE, DELETE ON dbo.Table1 BY dbo)
WITH (STATE = ON);
GO
以上代码将建立一个 MyAudit 服务器审计,用于跟踪 AdventureWorks 数据库中的 SELECT、INSERT、UPDATE 和 DELETE 之类的操作,并仅仅将这些操作进行审核。
3. SQL Server审计的应用场景
SQL Server审计功能可以用来解决多种安全和监测问题,例如:
满足合规性要求 - 多种法规要求对数据库活动进行审计,如HIPAA、SOX、PCI,要求严格记录和监测数据库的操作日志。在这方面,SQL Server审计功能可以记录对象级别的触发器运行、圆盘大小变化、服务操纵、链接、队列和话单等,记录信息可用于审计分析。
数据库安全审计 - SQL Server审计功能可以用于数据库访问的监测,标示出谁对数据库作了修改或者访问,所做了哪些操作以及何时进行的操作等。实际上,这种审计功能作为监控和恢复安全状态的手段,已经成为了数据库管理员的一项基本责任;
安全报告生成 - SQL Server审计功能还可以用于安全报告的生成。审计数据可以直接提供给审计人员,审计数据也可以操作起来提供报告用以满足安全审计要求。
4. 总结
SQL Server审计功能可以跟踪数据库活动,允许管理员记录和监测数据库访问,并通过审计数据满足法规要求。SQL Server 审计功能应用于数据库的访问监测,可以标示出谁对数据库进行了修改或访问,并记录操作日志。SQL Server 审计功能的安全设施可以保护数据,必要的时候可以快速恢复,从而提高数据安全性。