DBMS中的审计跟踪是指在数据库管理系统中记录和跟踪数据库中各种操作、事件和故障的技术和管理过程。审计跟踪的实现需要借助于DBMS中的特定机制和功能,这样才能够获得更加完整准确的审计信息。下面就来详细讲解一下DBMS中的审计跟踪的攻略以及实例。
1.审计跟踪的基本概念
审计跟踪是指记录和追踪数据库系统中的各种操作,包括增删改查等,以及异常事件和故障报告等。通过审计跟踪,可以了解哪些操作被执行,谁执行了这些操作,何时执行,以及执行结果是否成功等信息。
2.审计跟踪的实现
任何一个数据库管理系统都具有完善的审计跟踪机制,通过开启特定的审计跟踪功能,可以记录每一个操作的详细信息。具体来说,可以通过以下方式实现:
2.1 启用审计跟踪功能
启用审计跟踪功能的方法并不相同,这需要根据具体的DBMS类型和版本进行调整。更具体地说,可以通过SQL Server 2014及以上版本的以下命令开启审计跟踪函数:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Audit Level', 8;
GO
RECONFIGURE;
GO
2.2 定义审计策略
定义和设置审计跟踪策略是非常必要和重要的操作,这可以决定审计系统所记录的内容和范围。在为审计策略指定参数之前,需要了解哪些操作应该审计跟踪,以及跟踪哪些属性。例如,在Oracle 11g中,可以使用以下命令定义审计策略:
AUDIT SELECT ON hr.employees;
此命令可以记录在hr.employees表上执行SELECT操作时的用户和时间等信息。
2.3 使用审计输出
启用审计跟踪后,您可以从日志中检索审计跟踪输出。根据DBMS的不同,审计输出可以存在于系统日志文件或系统表中,或者由DBA查询。例如,在MySQL 5.7中,可以使用以下命令查询审计跟踪日志:
SELECT * FROM mysql.server_audit_log;
这将使您能够查看MySQL服务器上的审计跟踪日志。
3.审计跟踪的实例说明
为了更好地理解DBMS中审计跟踪的实现和应用,以下是两个示例说明。
示例1:
在Oracle数据库中,我们需要记录删除操作的详细信息。首先,需要启用审计跟踪功能:
AUDIT DELETE;
然后,需要定义审计数据的输出位置和格式。在这个例子中,我们将审计跟踪输出到表,使用逗号作为分隔符:
AUDIT TRAIL
DB;
AUDIT TRAIL
DB, EXTENDED
;
AUDIT TRAIL
DB, EXTENDED
NONE;
AUDIT TRAIL
DB, EXTENDED
TABLE;
AUDIT TRAIL
DB, EXTENDED
CSV;
AUDIT TRAIL
DB, EXTENDED
XML;
然后,在审计跟踪输出中,您可以检索关于删除操作的详细信息:
SELECT * FROM user_audit_trail
WHERE action_name = 'DELETE';
示例2:
在Microsoft SQL Server中,我们需要记录特定文件夹中文件的创建和删除事件。首先,需要启用审计跟踪功能:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Audit Level', 7;
RECONFIGURE;
然后,需要指定文件夹以及要记录的事件类型:
CREATE SERVER AUDIT FileAudit
TO FILE (
FILEPATH = 'C:\SqlAuditLogs\FileShareAudits\',
MAXSIZE = 0 ,
MAX_ROLLOVER_FILES = 2147483647 ,
RESERVE_DISK_SPACE = ON)
WITH (QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE);
CREATE SERVER AUDIT FileShareAccessAudit
TO FILE (
FILEPATH = 'C:\SqlAuditLogs\FileShareAudits\',
MAXSIZE = 0 ,
MAX_ROLLOVER_FILES = 2147483647 ,
RESERVE_DISK_SPACE = ON)
WITH (QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE);
CREATE SERVER AUDIT SPECIFICATION FileShareAuditEvents
FOR SERVER AUDIT FileShareAccessAudit
ADD (FILE_ACCESS_GROUP),
ADD (SERVER_PRINCIPAL_CHANGE_GROUP)
WITH (STATE = ON);
在启用了以下内容服务器定义之后,可以检索FileShareAccessAudit输出以查看所需信息:
SELECT * FROM sys.fn_get_audit_file ('C:\SqlAudit'
, DEFAULT
, DEFAULT);
这将使您能够检索有关文件夹访问和修改事件的详细信息。
总之,正确地实现DBMS中的审计跟踪,需要配置适当的审计策略和输出格式,并非常规定的方法,实例经过实践,在实现中娴熟的使用是非常重要的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:DBMS中的审计跟踪 - Python技术站