Netwrix Auditor for SQL Server
- 运行 Netwrix Auditor → 导航到“Search”→ 如果未选择,请单击“Advanced mode”→ 设置以下筛选条件:
- 筛选条件 = "数据源"
运算符 = "等于"
值 = "SQL Server" - 筛选条件 = "对象类型"
运算符 = "等于"
值 = "数据库" - 筛选条件 = "操作"
运算符 = "等于"
值 = "已修改"
- 筛选条件 = "数据源"
- 单击“搜索”按钮,然后查看对数据库进行了哪些更改。
了解更多:Netwrix Auditor for SQL Server
原生审计
- 运行 MS SQL Management Studio → 连接到要审计的数据库 → 单击“New Query”→ 将以下代码复制到“New Query”框中:
DECLARE @RC int, @TraceID int, @on BIT
EXEC @rc = sp_trace_create @TraceID output, 2, N'C:\path\file'
SELECT RC = @RC, TraceID = @TraceID
-- Follow Common SQL trace event list and common sql trace
-- tables to define which events and table you want to capture
SELECT @on = 1
EXEC sp_trace_setevent @TraceID, 128, 1, @on
-- (128-Event Audit Database Management Event, 1-TextData table column)
EXEC sp_trace_setevent @TraceID, 128, 11, @on
EXEC sp_trace_setevent @TraceID, 128, 14, @on
EXEC sp_trace_setevent @TraceID, 128, 35, @on
EXEC @RC = sp_trace_setstatus @TraceID, 1
GO
- 定义文件跟踪位置(标红),然后点击“Execute”以开始新的跟踪。
- 当你想审计数据时,执行此查询以停止跟踪:
sp_trace_setstatus @traceid = 1, @status = 0
- 执行此查询以将跟踪导入到数据库表中:
USE DBname
SELECT * INTO tablename FROM ::fn_trace_gettable('C:\path\file.trc', DEFAULT)
GO
- 执行此查询以查看跟踪(trace)数据的前 1000 行:
SELECT TOP 1000 [TextData] ,[HostName] ,[LoginName] ,[StartTime] ,[EndTime] ,[ServerName] ,[EventClass]
FROM [DBname].[dbo].[tablename]
WHERE DBname.dbo.tablename.TextData IS NOT NULL
- 查看 "TextData" 列中的事件:CREATE DATABASE、DROP DATABASE、ALTER DATABASE,以了解更改的是哪个数据库。要查明是谁进行了更改以及更改发生在何时,请分别参考 "LoginName" 和 "StartTime" 列。
在关键数据面临风险之前,检测整个 SQL Server 中的数据库变更
为什么需要在 SQL Server 中查找数据库变更?因为任何未经授权的 SQL Server 数据库变更(例如删除、修改或创建数据库及其对象)都可能危及您的数据安全。例如,删除或修改可能导致数据丢失或系统不可用。即使是创建新的数据库也可能带来麻烦,因为这会减少服务器上的可用空闲空间。
Netwrix Auditor for SQL Server 便于可靠地进行数据库变更跟踪与审计,包括检测架构变更、数据变更等。您不再需要花费数小时在 Transact-SQL 中编写和设置查询,例如,用于查明是谁更改了表。Netwrix Auditor for SQL Server 提供预定义和可自定义的仪表板与报告,以易于阅读的格式呈现每一次数据库变更的所有关键信息。此外,Interactive Search 功能可让您在几分钟内找到问题的根本原因,而对关键活动的告警可确保您最先了解可能存在的威胁。
分享到