之前介绍过安全策略中的用户安全。在安全策略中安全审计也是很重要的部分。安全审计主要用于监视并记录用户对数据库的各类操作行为,并记录到相关日志中以便日后进行跟踪、查询、分析。以实现对用户操作的监控和审计。
GBase数据库审计功能包括审计日志和审计日志高可用两部分。其中审计日志可通过配置审计策略实现记录那些用户执行的何种操作。审计日志高可用即定期对审计日志进行转储实现高可用。
1、开启审计日志功能:通过audit_log和log_output参数控制,其中 log_output='table'表示审计日志记录到系统表audit_log中。
GBase> set global audit_log=1; Query OK, 0 rows affected (Elapsed: 00:00:00.03) GBase> set global log_output='table'; Query OK, 0 rows affected (Elapsed: 00:00:00.00) |
2、审计策略管理:包括审计策略创建、修改、删除。
A、创建审计策略
ALTER AUDIT POLICY <audit_policy_name> SET [(]<audit_policy_item> = <value>[,<audit_policy_item> = <value>][)]; |
其中audit_policy_name为审计策略的名称,audit_policy_item为审计策略项目,取值包括user、db、obj_type、sql_commands、long_query_time等。用于指定审计日志记录哪些用户的操作。
b、修改审计策略
ALTER AUDIT POLICY <audit_policy_name> SET [(]<audit_policy_item> = <value>[,<audit_policy_item> = <value>][)]; |
其中audit_policy_item为审计策略项目,取值内容与创建审计策略中描述相同
c、删除审计策略
DROP AUDIT POLICY <audit_policy_name>; |
3、审计日志查看:通过查询审计日志表查看审计日志。
GBase>select taskid,user,user_host,query_time,db,table_list,sql_text,sql_type,sql_command from audit_log limit 1; +--------+------+---------------------------+-----------------+----+----------------------------+---------------------------------------------+----------+-------------+ | taskid | user | user_host | query_time | db | table_list | sql_text | sql_type | sql_command | +--------+------+---------------------------+-----------------+----+----------------------------+---------------------------------------------+----------+-------------+ | 0 | root | root[root] @ [10.10.4.3] | 00:00:00.017465 | | WRITE: ; READ: ; OTHER: ; | CREATE GCLUSTER_LOCAL AUDIT POLICY "audit1" | DDL | OTHERS | +--------+------+---------------------------+-----------------+----+----------------------------+---------------------------------------------+----------+-------------+ 1 row in set (Elapsed: 00:00:00.00) |
4、审计日志高可用:通过定时任务定期转储审计日志。集群安装或升级时自动在gclusterdb库下创建EXPRESS引擎随机分布表audit_log_express,定期将GBase库中的audit_log表内容导出到gclusterdb库中的audit_log_express表。
�




