2023年8月1日发(作者:)

SQLServer审计功能-记录所有的操作记录说到审计这个话题,相信作为⼀个企业管理员都知道,⽐如⼀般作为⼀个AD管理员的话,⼀般都会通过Policy开启审计功能,记录⼀些⾃定义的事务⽇志。对于SQL Server来说,审计也是⼀样的,SQL Server审计对象收集单个实例的服务器或数据库级的动作和⾏为监控组。 审计是在SQL Server实例级。 可以有多个审计/ SQL服务器实例。当你定义⼀个审计,你指定位置的输出结果。 这是审计⽬标。 审计是在创建的禁⽤状态,不会⾃动审计任何⾏动。 启⽤审计后,从审计审计⽬标接收数据。审计SQL Server的⼀个实例数据库引擎或单个数据库包括跟踪和⽇志记录事件发⽣在数据库引擎。 SQL Server审计服务器允许您创建审计,可以包含服务器服务器级别事件的审计规范,和数据库审计规范数据库级的事件。 审计事件可以写⼊事件⽇志或审计⽂件。对于审计的介绍在此就不多介绍了,我们可以在官⽹上进⾏搜索官⽅⽂档进⾏查看。开始我们今天的主题:我们通过开启SQL Server的审计,记录⽤户对数据库的Insert、update、delete操作。我们⾸先创建了⼀个测试数据库DB1,然后创建⼀个表Info插⼊⼀些测试数据接下来我们创建⼀个审计,来监控对数据库的所有操作在数据库实例下--安全性--审计--新建审核定义审核名称及审核⽂件的路劲及⼤⼩配置。我们也可以使⽤脚本TO FILE:指定输出到审核⽂件,也可以指定为Security Log和Application Log。FILEPATH:审核⽂件的⽬录地址。MaxSize:单个审核⽂件的最⼤容量。MAXSIZE:类似于Trace,指定Rollover允许最多⽂件数。RESERVE_DISK_SPACE:预先分配审核⽂件到MaxSize。个⼈推荐启⽤。QUEUE_DELAY:指定事件发⽣到被强制审核的毫秒间隔。指定为0则为同步审核。ON_FAILURE :当审核向上档写⼊数据失败时,接下来会采取的⾏为:CONTINUE | SHUTDOWN | FAIL_OPERATION。AUDIT_GUID:⽤于数据库镜像。类似Login的SID作⽤,镜像会话的主库如果有审核,则在镜像库创建对应的审核需要指定同样GUID。WHERE:相当于扩展事件中Predicate,⽤于指定过滤条件。TO FILE:指定输出到审核⽂件,也可以指定为Security Log和Application Log。FILEPATH:审核⽂件的⽬录地址。MaxSize:单个审核⽂件的最⼤容量。MAXSIZE:类似于Trace,指定Rollover允许最多⽂件数。RESERVE_DISK_SPACE:预先分配审核⽂件到MaxSize。个⼈推荐启⽤。QUEUE_DELAY:指定事件发⽣到被强制审核的毫秒间隔。指定为0则为同步审核。ON_FAILURE :当审核向上档写⼊数据失败时,接下来会采取的⾏为:CONTINUE | SHUTDOWN | FAIL_OPERATION。AUDIT_GUID:⽤于数据库镜像。类似Login的SID作⽤,镜像会话的主库如果有审核,则在镜像库创建对应的审核需要指定同样GUID。WHERE:相当于扩展事件中Predicate,⽤于指定过滤条件。审计创建完成之后是禁⽤的我们右击--启⽤审核启⽤成功我们要定义对哪个数据库表进⾏审计操作,我们需要在哪个数据库下新建--服务器审核规范定义服务器审核规范名称-及前⾯新建的审核服务我们需要在当前的数据库下创建审核规范我们通过定义审计操作类型---选择insert、delete、update等操作我们可以使⽤脚本创建123456789USE [DB1]GOCREATE DATABASE AUDIT SPECIFICATION [ServerAuditSpecification-DB1]FOR SERVER AUDIT [Audit-DB1]ADD (DELETE ON DATABASE::[DB1] BY [public]),ADD (INSERT ON DATABASE::[DB1] BY [public]),ADD (UPDATE ON DATABASE::[DB1] BY [public])WITH (STATE = ON)GO这样就在数据库DB1下就多出⼀个数据库审计规范我们接下来对数据库进⾏操作我们插⼊⼀条数据,然后查看审计右击--查看审计log我们发现通过以下⽅式也是可以看见操作类型信息的,具体我们可以通过配置筛选进⾏显⽰⾃定义内容即可我们再次需要需要通过访问⽣产的审计log进⾏查看,通过以下信息,我们也可以通过命令⾏进⾏查看123SELECT * FROM _get_audit_file ( 'serverNameAuditHIPPA_it' ,default,default); GOSELECT * FROM _get_audit_file ( 'D:Audit_LogAudit-DB1_29F2408B-C8F5-4747-A3F9-CCFD66D0D8C1_0_it' ,default,default);GO我们查询后,发现不是很友好,所以我们需要需要跳出关键的字段进⾏查找我们需要将关键的字段单独列出来,只显⽰关键的名称就可以了SELECT event_time, action_id, succeeded, session_id, session_server_principal_name, object_name, statement, file_name, audit_file_offsetfrom _get_audit_file( 'D:Audit_LogFilesAudit-DB_7CB2AD0B-C97D-4478-8360-E3C3D11B216C_0_it' ,default,default)

2023年8月1日发(作者:)

SQLServer审计功能-记录所有的操作记录说到审计这个话题,相信作为⼀个企业管理员都知道,⽐如⼀般作为⼀个AD管理员的话,⼀般都会通过Policy开启审计功能,记录⼀些⾃定义的事务⽇志。对于SQL Server来说,审计也是⼀样的,SQL Server审计对象收集单个实例的服务器或数据库级的动作和⾏为监控组。 审计是在SQL Server实例级。 可以有多个审计/ SQL服务器实例。当你定义⼀个审计,你指定位置的输出结果。 这是审计⽬标。 审计是在创建的禁⽤状态,不会⾃动审计任何⾏动。 启⽤审计后,从审计审计⽬标接收数据。审计SQL Server的⼀个实例数据库引擎或单个数据库包括跟踪和⽇志记录事件发⽣在数据库引擎。 SQL Server审计服务器允许您创建审计,可以包含服务器服务器级别事件的审计规范,和数据库审计规范数据库级的事件。 审计事件可以写⼊事件⽇志或审计⽂件。对于审计的介绍在此就不多介绍了,我们可以在官⽹上进⾏搜索官⽅⽂档进⾏查看。开始我们今天的主题:我们通过开启SQL Server的审计,记录⽤户对数据库的Insert、update、delete操作。我们⾸先创建了⼀个测试数据库DB1,然后创建⼀个表Info插⼊⼀些测试数据接下来我们创建⼀个审计,来监控对数据库的所有操作在数据库实例下--安全性--审计--新建审核定义审核名称及审核⽂件的路劲及⼤⼩配置。我们也可以使⽤脚本TO FILE:指定输出到审核⽂件,也可以指定为Security Log和Application Log。FILEPATH:审核⽂件的⽬录地址。MaxSize:单个审核⽂件的最⼤容量。MAXSIZE:类似于Trace,指定Rollover允许最多⽂件数。RESERVE_DISK_SPACE:预先分配审核⽂件到MaxSize。个⼈推荐启⽤。QUEUE_DELAY:指定事件发⽣到被强制审核的毫秒间隔。指定为0则为同步审核。ON_FAILURE :当审核向上档写⼊数据失败时,接下来会采取的⾏为:CONTINUE | SHUTDOWN | FAIL_OPERATION。AUDIT_GUID:⽤于数据库镜像。类似Login的SID作⽤,镜像会话的主库如果有审核,则在镜像库创建对应的审核需要指定同样GUID。WHERE:相当于扩展事件中Predicate,⽤于指定过滤条件。TO FILE:指定输出到审核⽂件,也可以指定为Security Log和Application Log。FILEPATH:审核⽂件的⽬录地址。MaxSize:单个审核⽂件的最⼤容量。MAXSIZE:类似于Trace,指定Rollover允许最多⽂件数。RESERVE_DISK_SPACE:预先分配审核⽂件到MaxSize。个⼈推荐启⽤。QUEUE_DELAY:指定事件发⽣到被强制审核的毫秒间隔。指定为0则为同步审核。ON_FAILURE :当审核向上档写⼊数据失败时,接下来会采取的⾏为:CONTINUE | SHUTDOWN | FAIL_OPERATION。AUDIT_GUID:⽤于数据库镜像。类似Login的SID作⽤,镜像会话的主库如果有审核,则在镜像库创建对应的审核需要指定同样GUID。WHERE:相当于扩展事件中Predicate,⽤于指定过滤条件。审计创建完成之后是禁⽤的我们右击--启⽤审核启⽤成功我们要定义对哪个数据库表进⾏审计操作,我们需要在哪个数据库下新建--服务器审核规范定义服务器审核规范名称-及前⾯新建的审核服务我们需要在当前的数据库下创建审核规范我们通过定义审计操作类型---选择insert、delete、update等操作我们可以使⽤脚本创建123456789USE [DB1]GOCREATE DATABASE AUDIT SPECIFICATION [ServerAuditSpecification-DB1]FOR SERVER AUDIT [Audit-DB1]ADD (DELETE ON DATABASE::[DB1] BY [public]),ADD (INSERT ON DATABASE::[DB1] BY [public]),ADD (UPDATE ON DATABASE::[DB1] BY [public])WITH (STATE = ON)GO这样就在数据库DB1下就多出⼀个数据库审计规范我们接下来对数据库进⾏操作我们插⼊⼀条数据,然后查看审计右击--查看审计log我们发现通过以下⽅式也是可以看见操作类型信息的,具体我们可以通过配置筛选进⾏显⽰⾃定义内容即可我们再次需要需要通过访问⽣产的审计log进⾏查看,通过以下信息,我们也可以通过命令⾏进⾏查看123SELECT * FROM _get_audit_file ( 'serverNameAuditHIPPA_it' ,default,default); GOSELECT * FROM _get_audit_file ( 'D:Audit_LogAudit-DB1_29F2408B-C8F5-4747-A3F9-CCFD66D0D8C1_0_it' ,default,default);GO我们查询后,发现不是很友好,所以我们需要需要跳出关键的字段进⾏查找我们需要将关键的字段单独列出来,只显⽰关键的名称就可以了SELECT event_time, action_id, succeeded, session_id, session_server_principal_name, object_name, statement, file_name, audit_file_offsetfrom _get_audit_file( 'D:Audit_LogFilesAudit-DB_7CB2AD0B-C97D-4478-8360-E3C3D11B216C_0_it' ,default,default)