达梦数据库审计相关参数

达梦数据库审计相关参数

基础环境
操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo)
数据库版本:DM Database Server 64 V8
架构:单实例

1 查看审计相关的参数

查看AUD相关的参数。

1.1 查看dm.ini配置文件。

在dm.ini配置文件是看到AUDIT_FILE_FULL_MODE、AUDIT_SPACE_LIMIT、AUDIT_MAX_FILE_SIZE、AUDIT_IP_STYLE 4个参数。

[dmdba@test DAMENG]$ cat dm.ini |grep AUD
                AUDIT_FILE_FULL_MODE            = 1                     #operation mode when audit file is full,1: delete old file; 2: no longer to write audit records
                AUDIT_SPACE_LIMIT               = 8192                  #audit space limit in Megabytes
                AUDIT_MAX_FILE_SIZE             = 100                   #maximum audit file size in Megabytes
                AUDIT_IP_STYLE                  = 0                     #IP style in audit record, 0: IP, 1: IP(hostname), default 0

1.2 查看数据库v$parameter视图

v$parameter视图里查到了6个参数。比dm.ini多了AUD_PATH、ENABLE_AUDIT 这2个。

SQL> select * from v$parameter where name like '%AUD%';

行号     ID          NAME                 TYPE      VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                                                     DEFAULT_VALUE ISDEFAULT  
---------- ----------- -------------------- --------- ----- --------- ---------- ----------------------------------------------------------------------------------------------- ------------- -----------
1          7           AUD_PATH             READ ONLY                            audit log path                                                                                  NULL          1
2          473         ENABLE_AUDIT         READ ONLY 0     0         0          Flag For Allowing Audit, 0: no audit 1: normal audit  2:normal audit and realtime audit         0             1
3          474         AUDIT_FILE_FULL_MODE IN FILE   1     1         1          operation mode when audit file is full, 1: delete old file; 2: no longer to write audit records 1             1
4          475         AUDIT_SPACE_LIMIT    IN FILE   8192  8192      8192       audit space limit in Megabytes                                                                  8192          1
5          476         AUDIT_MAX_FILE_SIZE  SYS       100   100       100        maximum audit file size in Megabytes                                                            100           1
6          477         AUDIT_IP_STYLE       SYS       0     0         0          IP style in audit record, 0: IP, 1: IP(hostname), default 0                                     0             1

6 rows got

已用时间: 3.660(毫秒). 执行号:905.

注:达梦数据库的参数共有3种类型。

参数类型。
READ ONLY:手动参数, 表示服务器运行过程中不可修改;
IN FILE: 静态参数, 只可修改 ini 文件;
SYS 和 SESSION: 动态参数, ini 文件和内存同时可修改。其中, SYS 为系统级参数,SESSION 为会话级参数

2 测试相关参数

2.1 参数ENABLE_AUDIT

在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int) ;控制, 过程执行完后会立即生效, param 有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
缺省值为 0。

--开启审计
[dmdba@test DAMENG]$ disql sysauditor/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.787(ms)
disql V8
SQL> select user();

行号     USER()    
---------- ----------
1          SYSAUDITOR

已用时间: 4.813(毫秒). 执行号:500.
SQL> select name,value,sys_value,file_value from v$parameter where name='ENABLE_AUDIT';

行号     NAME         VALUE SYS_VALUE FILE_VALUE
---------- ------------ ----- --------- ----------
1          ENABLE_AUDIT 0     0         0

已用时间: 9.256(毫秒). 执行号:501.
SQL> SP_SET_ENABLE_AUDIT (2);
DMSQL 过程已成功完成
已用时间: 7.608(毫秒). 执行号:502.

--**VALUE和SYS_VALUE的值都为2,表示在会话级和系统级已开启审计**
SQL> select name,value,sys_value,file_value from v$parameter where name='ENABLE_AUDIT';

行号     NAME         VALUE SYS_VALUE FILE_VALUE
---------- ------------ ----- --------- ----------
1          ENABLE_AUDIT 2     2         0

已用时间: 4.369(毫秒). 执行号:503.

--查看审计文件。在**$DM_HOME/data/数据库名** 路径下已经生成审计文件。
[dmdba@test DAMENG]$ pwd
/dm8/data/DAMENG
[dmdba@test DAMENG]$ ls -lrt AUDIT_DMSERVER_*
-rw-r--r-- 1 dmdba dinstall 104857600 Apr  5 19:32 AUDIT_DMSERVER_CAA80D52CAA80D52C2F1D1D17841ABD7_2024-4-5-19-32-16.log
-rw-r--r-- 1 dmdba dinstall 104857600 Apr  5 19:54 AUDIT_DMSERVER_79D60ECB79D60ECB460640887841ABD7_2024-4-5-19-32-52.log
-rw-r--r-- 1 dmdba dinstall 104857600 Apr  5 19:58 AUDIT_DMSERVER_1F6DB4EA1F6DB4EA5825223C7841ABD7_2024-4-5-19-58-46.log

2.2 参数AUD_PATH

参数AUD_PATH表示审计文件的保存路径。默认值为**$DM_HOME/data/数据库名**。可以通过视图V$AUDIT_SPACE确认。V$AUDIT_SPACE动态性能视图只有审计用户可以查询。

--使用sysdba用户
[dmdba@test DAMENG]$ disql sysdba/Dameng123    

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.944(ms)
disql V8
SQL> select user();

行号     USER()
---------- ------
1          SYSDBA

已用时间: 1.634(毫秒). 执行号:600.
SQL> select * from V$AUDIT_SPACE;
select * from V$AUDIT_SPACE;
[-5504]:没有[V$AUDIT_SPACE]对象的查询权限.
已用时间: 0.366(毫秒). 执行号:0.
SQL> exit

--使用sysauditor用户
[dmdba@test DAMENG]$ disql sysauditor/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.196(ms)
disql V8
SQL> select user();

行号     USER()    
---------- ----------
1          SYSAUDITOR

已用时间: 1.255(毫秒). 执行号:700.
SQL> select * from V$AUDIT_SPACE;

行号     AUD_PATH         AUDIT_FILE_FULL_MODE AUDIT_MAX_FILE_SIZE AUD_SPACE_LIMIT AUD_SPACE_FREE
---------- ---------------- -------------------- ------------------- --------------- --------------
1          /dm8/data/DAMENG 1                    100                 8192            -1

已用时间: 0.276(毫秒). 执行号:701.
SQL> 

修改审计文件保存路径

--新建目录
[dmdba@test ~]$ mkdir -p /dm8/log/audit

--修改dm.ini配置文件
--新增
                AUD_PATH=/dm8/log/audit

--重启实例
[dmdba@test DAMENG]$ DmServiceDMSERVER restart
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:                                [ OK ]
[dmdba@test DAMENG]$ 

--确认参数
[dmdba@test DAMENG]$ disql sysauditor/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 5.763(ms)
disql V8
SQL> select * from V$AUDIT_SPACE;

行号     AUD_PATH       AUDIT_FILE_FULL_MODE AUDIT_MAX_FILE_SIZE AUD_SPACE_LIMIT AUD_SPACE_FREE
---------- -------------- -------------------- ------------------- --------------- --------------
1          /dm8/log/audit 1                    100                 8192            -1

已用时间: 2.053(毫秒). 执行号:500.
SQL> 

--新路径下已经生成审计文件
[dmdba@test audit]$ pwd
/dm8/log/audit
[dmdba@test audit]$ ll
total 102400
-rw-r--r-- 1 dmdba dinstall 104857600 Apr  5 20:16 AUDIT_DMSERVER_7416B3257416B325D6B6A7A17841ABD7_2024-4-5-20-16-51.log

2.3 参数AUDIT_SPACE_LIMIT

参数AUDIT_SPACE_LIMIT表示审计空间的限制大小。默认值为8192,单位为MB。

SQL> select * from v$parameter where name = 'AUDIT_SPACE_LIMIT';

行号     ID          NAME              TYPE    VALUE SYS_VALUE FILE_VALUE DESCRIPTION                    DEFAULT_VALUE ISDEFAULT  
---------- ----------- ----------------- ------- ----- --------- ---------- ------------------------------ ------------- -----------
1          475         AUDIT_SPACE_LIMIT IN FILE 8192  8192      8192       audit space limit in Megabytes 8192          1

通过dm.ini配置文件来修改。例如改为1024。

--修改dm.ini配置文件
AUDIT_SPACE_LIMIT=1024

--重启实例
[dmdba@test DAMENG]$ DmServiceDMSERVER restart 
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:                                [ OK ]
[dmdba@test DAMENG]$ disql sysauditor/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.095(ms)
disql V8
SQL> select name,value,sys_value,file_value from v$parameter where name='AUDIT_SPACE_LIMIT';

行号     NAME              VALUE SYS_VALUE FILE_VALUE
---------- ----------------- ----- --------- ----------
1          AUDIT_SPACE_LIMIT 1024  1024      1024

已用时间: 5.451(毫秒). 执行号:500.

但是经过测试,发现AUDIT_SPACE_LIMIT参数没生效。


--AUD_SPACE_LIMIT参数已经设置为300,按官方文档解释应该只能使用300M的空间。但实际已经使用了900M的空间。
[dmdba@test DAMENG]$ disql sysauditor/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.457(ms)
disql V8
SQL> select * from V$AUDIT_SPACE;

行号     AUD_PATH       AUDIT_FILE_FULL_MODE AUDIT_MAX_FILE_SIZE AUD_SPACE_LIMIT AUD_SPACE_FREE
---------- -------------- -------------------- ------------------- --------------- --------------
1          /dm8/log/audit 1                    100                 300             299

已用时间: 2.139(毫秒). 执行号:500.
SQL> 

[dmdba@test log]$ pwd
/dm8/log
[dmdba@test log]$ du -sm audit/
901     audit/
[dmdba@test log]$ cd audit/
[dmdba@test audit]$ du -sm *
100     AUDIT_DMSERVER_67FABDDF67FABDDF33B703827841ABD7_2024-4-5-20-43-29.log
100     AUDIT_DMSERVER_7416B3257416B325D6B6A7A17841ABD7_2024-4-5-20-16-51.log
100     AUDIT_DMSERVER_B32DE179B32DE179B5D42C9E7841ABD7_2024-4-5-20-52-47.log
100     AUDIT_DMSERVER_CE635524CE635524067158ED7841ABD7_2024-4-5-20-51-57.log
100     AUDIT_DMSERVER_D599F4C0D599F4C010D5DFC47841ABD7_2024-4-5-20-37-47.log
100     AUDIT_DMSERVER_DD082677DD082677A124D68B7841ABD7_2024-4-5-20-27-15.log
100     AUDIT_DMSERVER_E0610456E061045639EF823C7841ABD7_2024-4-5-20-39-18.log
100     AUDIT_DMSERVER_E3FCFBABE3FCFBABC68AE5F47841ABD7_2024-4-5-20-40-21.log
100     AUDIT_DMSERVER_F8CB1556F8CB1556961BD7327841ABD7_2024-4-5-20-41-54.log
[dmdba@test audit]$ 

那会不会是默认值的8192生效呢? 发现aud文件增长到了8801M还未停止。 目前不确认该参数的限制,后续再补充。

[dmdba@test log]$ pwd
/dm8/log
[dmdba@test log]$ du -sm audit/
8801    audit/
[dmdba@test log]$ 

2.4 参数AUDIT_FILE_FULL_MODE

参数AUDIT_FILE_FULL_MODE表示剩余空间不足时的处理方式。

在V$AUDIT_SPACE视图中的解释为:
在这里插入图片描述

在v$parameter视图中的解释为:

行号     ID          NAME                 TYPE    VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                                                     DEFAULT_VALUE ISDEFAULT  
---------- ----------- -------------------- ------- ----- --------- ---------- ----------------------------------------------------------------------------------------------- ------------- -----------
1          474         AUDIT_FILE_FULL_MODE IN FILE 1     1         1          operation mode when audit file is full, 1: delete old file; 2: no longer to write audit records 1             1

两者对参数 AUDIT_FILE_FULL_MODE=1 的解释不一样。

下面做测试:
–本次单独挂载一块5G的盘作为审议文件的保存目录。看5G空间用完后,数据库会做什么操作?

[root@test ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.8G     0  3.8G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G   13M  3.8G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda3        72G   34G   39G  47% /
/dev/sda1       297M  138M  159M  47% /boot
tmpfs           781M  8.0K  781M   1% /run/user/42
tmpfs           781M     0  781M   0% /run/user/0
/dev/sdb1       4.8G   20M  4.6G   1% /dm8/log/audit
[dmdba@test arch]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       4.8G  4.5G  119M  98% /dm8/log/audit
2024-04-06 11:49:23.403 [WARNING] database P0000026077 T0000000000000026077  Disk space is almost overflow for AUDIT.
2024-04-06 11:49:23.403 [ERROR] database P0000026077 T0000000000000026077  Disk space overflow, aud_fil_create_low[/dm8/log/audit/AUDIT_DMSERVER_2A7DD3302A7DD330DB464E677841ABD7_2024-4-6-11-49-23.log] failed.
2024-04-06 11:49:23.404 [WARNING] database P0000026077 T0000000000000026077  Audit file /dm8/log/audit/AUDIT_DMSERVER_91DCFBCD91DCFBCDC3BA815A7841ABD7_2024-4-6-10-20-11.log is overwritten
2024-04-06 11:49:23.404 [WARNING] database P0000026077 T0000000000000026077  Disk space is almost overflow for AUDIT.
2024-04-06 11:49:23.407 [INFO] database P0000026077 T0000000000000026125  nsvr_lsnr_thread successfully created.
2024-04-06 11:49:23.407 [INFO] database P0000026077 T0000000000000026100  total 0 active crash trx, pseg_crash_trx_rollbacksys_only(0) begin ...
2024-04-06 11:49:23.407 [INFO] database P0000026077 T0000000000000026100  pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
2024-04-06 11:49:23.407 [INFO] database P0000026077 T0000000000000026100  pseg_crash_trx_rollback end
2024-04-06 11

–开始看到 [WARNING] database P0000025576 T0000000000000025576 Disk space is almost overflow for AUDIT. 此时审计目录使用率98%。且AUDIT_DMSERVER_91DCFBCD91DCFBCDC3BA815A7841ABD7_2024-4-6-10-20-11.log号审计日志被覆盖。说明AUDIT_FILE_FULL_MODE=1是数据库会删除旧的归档日志。

2024-04-06 11:58:21.097 [INFO] database P0000027063 T0000000000000027063  nsvr_process_before_open begin.
2024-04-06 11:58:21.115 [INFO] database P0000027063 T0000000000000027063  nsvr_process_before_open success.
2024-04-06 11:58:21.115 [WARNING] database P0000027063 T0000000000000027063  Disk space is almost overflow for AUDIT.
2024-04-06 11:58:21.115 [ERROR] database P0000027063 T0000000000000027063  Disk space overflow, aud_fil_create_low[/dm8/log/audit/AUDIT_DMSERVER_C978F64DC978F64DAA0784967841ABD7_2024-4-6-11-58-21.log] failed.
2024-04-06 11:58:21.115 [INFO] database P0000027063 T0000000000000027085  total 0 active crash trx, pseg_crash_trx_rollbacksys_only(0) begin ...
2024-04-06 11:58:21.115 [INFO] database P0000027063 T0000000000000027111  nsvr_lsnr_thread successfully created.
2024-04-06 11:58:21.115 [INFO] database P0000027063 T0000000000000027085  pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.

当AUDIT_FILE_FULL_MODE=2时,空间不足情况下则不生成审计日志,但不影响数据库运行。

2.5 参数AUDIT_MAX_FILE_SIZE

参数AUDIT_MAX_FILE_SIZE表示单个审计文件的大小,默认值为100,单位MB。

SQL> select * from v$parameter where name = 'AUDIT_MAX_FILE_SIZE';

行号     ID          NAME                TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION                          DEFAULT_VALUE ISDEFAULT  
---------- ----------- ------------------- ---- ----- --------- ---------- ------------------------------------ ------------- -----------
1          476         AUDIT_MAX_FILE_SIZE SYS  100   100       100        maximum audit file size in Megabytes 100           1

已用时间: 4.718(毫秒). 执行号:502.

尝试修改参数AUDIT_MAX_FILE_SIZE 为10,要使用SYSDBA用户修改。

[dmdba@test DAMENG]$ disql sysdba/Dameng123    

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.691(ms)
disql V8
SQL> select user();

行号     USER()
---------- ------
1          SYSDBA

已用时间: 1.832(毫秒). 执行号:600.
SQL> alter system set 'AUDIT_MAX_FILE_SIZE'=10 both;
DMSQL 过程已成功完成
已用时间: 5.006(毫秒). 执行号:603.
SQL>  select * from v$parameter where name = 'AUDIT_MAX_FILE_SIZE';

行号     ID          NAME                TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION                          DEFAULT_VALUE ISDEFAULT  
---------- ----------- ------------------- ---- ----- --------- ---------- ------------------------------------ ------------- -----------
1          476         AUDIT_MAX_FILE_SIZE SYS  10    10        10         maximum audit file size in Megabytes 100           0

已用时间: 4.113(毫秒). 执行号:604.
SQL> 

最新的审计文件已经变为10MB大小。
在这里插入图片描述

2.6 参数AUDIT_IP_STYLE

参数AUDIT_IP_STYLE表示审计文件中是否记录主机名。
将其修改为1,再通过analyzer工具查看审计文件,发现IP地址列已经带上主机名。

[dmdba@test DAMENG]$ disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.586(ms)
disql V8
SQL> alter system set 'AUDIT_IP_STYLE'=1 both;
DMSQL 过程已成功完成
已用时间: 6.273(毫秒). 执行号:1300.
SQL> select * from v$parameter where name = 'AUDIT_IP_STYLE';

行号     ID          NAME           TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                 DEFAULT_VALUE ISDEFAULT  
---------- ----------- -------------- ---- ----- --------- ---------- ----------------------------------------------------------- ------------- -----------
1          477         AUDIT_IP_STYLE SYS  1     1         1          IP style in audit record, 0: IP, 1: IP(hostname), default 0 0             0

已用时间: 5.769(毫秒). 执行号:1301.

在这里插入图片描述

谨记:心存敬畏,行有所止。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值