VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

审计概述

背景信息

数据库安全对数据库系统来说至关重要。Vastbase将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。

关于审计功能,用户需要了解以下几点内容:

  • 审计总开关 audit_enabled 支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。

  • 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。

  • 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。

目前,Vastbase支持以下审计项如表5-17所示。

表5-17 配置审计项

配置项 描述
用户登录、注销审计 参数:audit_login_logout
默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。
数据库启动、停止、恢复和切换审计 参数:audit_database_process
默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。
用户锁定和解锁审计 参数:audit_user_locked
默认值为1,表示开启审计用户锁定和解锁功能。
用户访问越权审计 参数:audit_user_violation
默认值为0,表示关闭用户越权操作审计功能。
授权和回收权限审计 参数:audit_grant_revoke
默认值为1,表示开启审计用户权限授予和回收功能。
数据库对象的CREATE,ALTER,DROP操作审计 参数:audit_system_object
默认值为12295,表示只对DATABASE、SCHEMA、USER、DATA SOURCE这四类数据库对象的CREATE、ALTER、DROP操作进行审计。
具体表的INSERT、UPDATE和DELETE操作审计 参数:audit_dml_state
默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。
SELECT操作审计 参数:audit_dml_state_select
默认值为0,表示关闭SELECT操作审计功能。
COPY审计 参数:audit_copy_exec
默认值为0,表示关闭copy操作审计功能。
存储过程和自定义函数的执行审计 参数:audit_function_exec
默认值为0,表示不记录存储过程和自定义函数的执行审计日志。
SET审计 参数:audit_set_parameter
默认值为1,表示记录set操作审计日志

安全相关参数及默认值请参见表5-18。

表5-18 安全相关参数及默认值

参数名 默认值 说明
ssl off 指定是否启用SSL连接。
require_ssl off 指定服务器端是否强制要求SSL连接。
ssl_ciphers ALL 指定SSL支持的加密算法列表。
ssl_cert_file server.crt 指定包含SSL服务器证书的文件的名称。
ssl_key_file server.key 指定包含SSL私钥的文件名称。
ssl_ca_file cacert.pem 指定包含CA信息的文件的名称。
ssl_crl_file NULL 指定包含CRL信息的文件的名称。
password_policy 1 指定是否进行密码复杂度检查。
password_reuse_time 60 指定是否对新密码进行可重用天数检查。
password_reuse_max 0 指定是否对新密码进行可重用次数检查。
password_lock_time 1 指定帐户被锁定后自动解锁的时间。
failed_login_attempts 10 如果输入密码错误的次数达到此参数值时,当前帐户被锁定。
password_encryption_type 2 指定采用何种加密方式对用户密码进行加密存储。
password_min_uppercase 0 密码中至少需要包含大写字母的个数。
password_min_lowercase 0 密码中至少需要包含小写字母的个数。
password_min_digital 0 密码中至少需要包含数字的个数。
password_min_special 0 密码中至少需要包含特殊字符的个数。
password_min_length 8 密码的最小长度。 说明 在设置此参数时,请将其设置成不大于password_max_length,否则进行涉及密码的操作会一直出现密码长度错误的提示
password_max_length 32 密码的最大长度。 说明 在设置此参数时,请将其设置成不小于password_min_length,否则进行涉及密码的操作会一直出现密码长度错误的提示。
password_effect_time 90 密码的有效期限。
password_notify_time 7 密码到期提醒的天数。
audit_enabled on 控制审计进程的开启和关闭。
audit_directory pg_audit 审计文件的存储目录。
audit_data_format binary 审计日志文件的格式,当前仅支持二进制格式(binary)。
audit_rotation_interval 1d 指定创建一个新审计日志文件的时间间隔。当现在的时间减去上次创建一个审计日志的时间超过了此参数值时,服务器将生成一个新的审计日志文件。
audit_rotation_size 10MB 指定审计日志文件的最大容量。当审计日志消息的总量超过此参数值时,服务器将生成一个新的审计日志文件。
audit_resource_policy on 控制审计日志的保存策略,以空间还是时间限制为优先策略,on表示以空间为优先策略。
audit_file_remain_time 90 表示需记录审计日志的最短时间要求,该参数在audit_resource_policy为off时生效。
audit_space_limit 1GB 审计文件占用磁盘空间的最大值。
audit_file_remain_threshold 1048576 审计目录下审计文件的最大数量。
audit_login_logout 7 指定是否审计数据库用户的登录(包括登录成功和登录失败)、注销。
audit_database_process 1 指定是否审计数据库启动、停止、切换和恢复的操作。
audit_user_locked 1 指定是否审计数据库用户的锁定和解锁。
audit_user_violation 0 指定是否审计数据库用户的越权访问操作。
audit_grant_revoke 1 指定是否审计数据库用户权限授予和回收的操作。
audit_system_object 12295 指定是否审计数据库对象的CREATE、DROP、ALTER操作。
audit_dml_state 0 指定是否审计具体表的INSERT、UPDATE、DELETE操作。
audit_dml_state_select 0 指定是否审计SELECT操作。
audit_copy_exec 0 指定是否审计COPY操作。
audit_function_exec 0 指定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。
audit_set_parameter 1 指定是否审计SET操作。
enableSeparationOfDuty off 指定是否开启三权分立。
session_timeout 10min 建立连接会话后,如果超过此参数的设置时间,则会自动断开连接。
auth_iteration_count 10000 认证加密信息生成过程中使用的迭代次数。
操作步骤

步骤1 以操作系统用户vastbase登录数据库主节点。

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

vastbase=# SET ROLE joe PASSWORD "abc@1234"; 
ERROR:  Invalid username/password,set role denied.

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

连接成功后,系统显示类似如下信息:

vsql ((Vastbase 1.0 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131 
Non-SSL connection (SSL connection is recommended when requiring high-security) 
Type "help" for help. 
 
vastbase=# 

步骤3 检查审计总开关状态。

1.用show命令显示审计总开关audit_enabled的值。

vastbase=# SHOW audit_enabled;

2.修改postgres.conf的audit_enabled=“on”,重启数据库,使得参数生效。

步骤4 配置具体的审计项。

说明
  • 只有开启审计功能,用户的操作(包括用户建立的会话不符合IP段和时间段导致会话连接失败)才会被记录到审计文件中。
  • 各审计项的默认参数都符合安全标准,用户可以根据需要开启其他审计功能,但会对性能有一定影响。

以开启对数据库所有对象的增删改操作的审计开关为例,其他配置项的修改方法与此相同,修改postgres.conf的audit_system_object=2097152,重启数据库,使得参数生效。

其中audit_system_object代表审计项开关,2097152为该审计开关的值。