维护审计日志

    • 与审计日志相关的配置参数及其含义请参见表1

      表 1 审计日志相关配置参数

    • 审计日志删除命令为数据库提供的sql函数pg_delete_audit,其原型为:

      其中参数startime和endtime分别表示审计记录的开始时间和结束时间。

    • 目前常用的记录审计内容的方式有两种:记录到数据库的表中、记录到OS文件中。这两种方式的优缺点比较如所示。

      表 2 审计日志保存方式比较

      方式

      优点

      缺点

      记录到表中

      不需要用户维护审计日志。

      由于表是数据库的对象,如果一个数据库用户具有一定的权限,就能够访问到审计表。如果该用户非法操作审计表,审计记录的准确性难以得到保证。

      记录到OS文件中

      比较安全,即使一个帐户可以访问数据库,但不一定有访问OS这个文件的权限。

      需要用户维护审计日志。

      从数据库安全角度出发,openGauss采用记录到OS文件的方式来保存审计结果,保证了审计结果的可靠性。

    1. 以操作系统用户omm登录数据库主节点。

    2. 使用如下命令连接数据库。

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      1. gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      2. Type "help" for help.
      3. openGauss=#
    3. 选择日志维护方式进行维护。

      • 设置自动删除审计日志

        审计文件占用的磁盘空间或者审计文件的个数超过指定的最大值时,系统将删除最早的审计文件,并记录审计文件删除信息到审计日志中。

        配置审计文件占用磁盘空间的大小(audit_space_limit)。

        1. 查看已配置的参数。

          如果显示结果不为1GB(1024MB),执行“\q”命令退出数据库。

        2. 建议执行如下命令设置成默认值1024MB。

          1. gs_guc reload -D /gaussdb/data/datanode -c "audit_space_limit=1024MB"

        配置审计文件个数的最大值(audit_file_remain_threshold)。

        1. 查看已配置的参数。

          1. openGauss=# SHOW audit_file_remain_threshold;
          2. -----------------------------
          3. 1024
          4. (1 row)

          如果显示结果不为1024,执行“\q”命令退出数据库。

        2. 建议执行如下命令设置成默认值1024。

      • 手动备份审计文件

        当审计文件占用的磁盘空间或者审计文件的个数超过配置文件指定的值时,系统将会自动删除较早的审计文件,因此建议用户周期性地对比较重要的审计日志进行保存。

        1. 使用show命令获得审计文件所在目录(audit_directory)。

        2. 将审计目录整个拷贝出来进行保存。

      • 手动删除审计日志

        当不再需要某时段的审计记录时,可以使用审计接口命令pg_delete_audit进行手动删除。

        1. openGauss=# SELECT pg_delete_audit('2012-09-20 00:00:00','2012-09-21 23:59:59');