达梦审计功能

达梦审计

前言

根据达梦官网文档整理

一、为什么要做数据库审计

  • 增强内部安全,可解答是哪个对象/人员更改了关键数据,并在何时进行的更改。

  • 安全等保、内审等合规条件的基本需求

  • 定责、追责等提供依据,起到威慑作用

二、谁去做审计

  • 安全审计员、也有可能是DBA、第三方监理部门

三、什么时候做审计

  • 等保要求规范

  • 保证数据安全,如一些敏感数据,核心业务数据外泄

  • 出于其它业务上考虑,如防止贪污、非法转移等

四、审计

审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。DM 数据库除了提供数 据安全保护措施外,还提供对日常事件的事后审计监督。DM 具有一个灵活的审计子系统, 可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪 审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采 取积极、有效的应对措施。

五、dm.ini审计相关的参数

参数说明
AUD_PATHDM 审计信息存储在审计文件中。审计文件默认存放在数据库的 SYSTEM_PATH 指定的路径,即数据库所在路径。用户也可在 dm.ini 文件中添加参数 AUD_PATH 来指定审计文件的存放路径
AUDIT_SPACE_LIMIT审计文件总存储空间大小,该参数取值范围为 0~1024*1024M,0 表示不限制,缺省为 8192M。
AUDIT_MAX_FILE_SIZE单个审计文件的大小,有效值范围为 1~4096M,缺省值为 100M。当单个审计文件超过指定大小时,系统会自动切换审计文件,自动创建新的审计文件,审计记录将写入新的审计文件中。
AUDIT_FILE_FULL_MODE随着系统的运行,审计记录将会不断增加,审计文件需要更多的磁盘空间。在极限情况下,审计记录可能会因为磁盘空间不足而无法写入审计文件,最终导致系统无法正常运行。对这种情况的处理有两种策略。
1:删除最老的审计文件,直至有足够的空间创建新审计文件。若将所有可以删除的审计文件都删除后空间仍旧不够,则数据库会挂起不再处理任何请求,直至磁盘空间被清理出足够创建新审计文件的空间。
2:不再写审计记录

注意

AUDIT_FILE_FULL_MODE的**两种策略都会导致审计记录的缺失,因此,管理员应该及时对审计文件进行备份**。

六、审计类别

数据库审计员指定被审计对象的活动称为审计设置,只有具有 AUDIT DATABASE 权限的审计员才能进行审计设置。DM 提供审计设置系统过程来实现这种设置,被审计的对象可以是某类操作,也可以是某些用户在数据库中的全部行踪。只有预先设置的操作和用户才能被 DM 系统自动进行审计。

DM 允许在三个级别上进行审计设置。

审计级别说明
系统级系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
语句级导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句
对象级审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句

语句级与对象级的区别?

  • 语句级一类的操作,不指明具体对象
  • 对象级针对某个具体对象的操作

审计设置存放于 DM 字典表 SYSAUDIT 中,进行一次审计设置就在 SYSAUDIT 中增加一条对应的记录,取消审计则删除 SYSAUDIT 中相应的记录。

SYSAUDITOR.SYSAUDIT表结构:

数据类型说明系统函数
LEVELSMALLINT审计级别SF_GET_AUDIT_LEVELNAME
UIDINTEGER用户 ID
TVPIDINTEGER表/视图/触发器/存储过程函数 ID
COLIDSMALLINT列 ID
TYPESMALLINT审计类型SF_GET_AUDIT_TYPENAME
WHENEVERSMALLINT审计情况SF_GET_AUDIT_WHENEVERNAME
SQL > SELECT * FROM SYSAUDIT;
#|LEVEL |UID     |TVPID |COLID |TYPE  |WHENEVER|
-+------+--------+------+------+------+--------+
1|     1|50331649|    -1|    -1|     9|       3|
2|     1|50331649|    -1|    -1|    12|       3|
3|     1|50331649|    -1|    -1|    13|       3|SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;审计级别 审计项     审计条件
-------- ---------- --------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL

1、系统级审计

系统级审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录。

系统级审计选项

审计的数据库操作说明
数据库系统启动关闭区分第一次启动、正常退出后启动、异常退出后启动和还原库后第一次启动
审计空间不足告警系统定时检测如果审计空间不足就会生成审计记录
数据库版本升级包括数据字典版本、回滚段版本等
主备之间 redo 日志传输故障和恢复包括主备之间 redo 日志传输异常和恢复两种
SP_SET_ENABLE_AUDIT打开/关闭审计开关
SP_AUDIT_STMT/SP_NOAUDIT_STMT设置/取消语句级审计
SP_AUDIT_OBJECT设置对象级审计
SP_AUDIT_SET_ENC设置审计加密
SP_DROP_AUDIT_FILE删除审计文件
SP_SWITCH_AUDIT_FILE切换审计文件
SP_SET_PARA_VALUE设置 DM.INI 文件中整型的参数值
SP_SET_PARA_STRING_VALUE设置 DM.INI 文件中字符型的参数值
SP_SET_PARA_DOUBLE_VALUE设置 DM.INI 文件中浮点型的参数值
SF_SET_SYSTEM_PARA_VALUE修改整型、double、varchar 的静态配置参数或动态配置参数
SF_SET_SESSION_PARA_VALUE设置会话级 INI 参数在当前会话上的值
SP_RESET_SESSION_PARA_VALUE重置会话级 INI 参数在当前会话上的值,使得当前会话的参数值和全局值一致
SP_SET_PARAM_IN_SESSION设置指定会话的会话级 INI 参数的值
SP_SET_SQLLOG_INI修改 SQLLOG.INI 文件的内容
SP_DELETE_SQLLOG_INI_MODE删除 SQLLOG.INI 文件中的模式

2、语句级审计(STMT

语句级审计的动作是全局的,不对应具体的数据库对象。其审计选项如表所示。

审计选项审计的数据库操作说明
ALL所有的语句级审计选项所有可审计操作
USERCREATE USER
ALTER USER
DROP USER
创建/修改/删除用户操作
ROLECREATE ROLE
DROP ROLE
创建/删除角色操作
TABLESPACECREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
创建/修改/删除表空间操作
SCHEMACREATE SCHEMA
DROP SCHEMA
SET SCHEMA
创建/删除/设置当前模式操作
TABLECREATE TABLE
ALTER TABLE
DROP TABLE
TRUNCATE TABLE
创建/修改/删除/清空基表操作
VIEWCREATE VIEW
ALTER VIEW
DROP VIEW
创建/修改/删除视图操作
INDEXCREATE INDEX
DROP INDEX
创建/删除索引操作
PROCEDURECREATE PROCEDURE
ALTER PROCEDURE
DROP PROCEDURE
创建/修改/删除存储模块操作
TRIGGERCREATE TRIGGER
ALTER TRIGGER
DROP TRIGGER
创建/修改/删除触发器操作
SEQUENCECREATE SEQUENCE
ALTER SEQUENCE
DROP SEQUENCE
创建/修改/删除序列操作
CONTEXTCREATE CONTEXT INDEX
ALTER CONTEXT INDEX
DROP CONTEXT INDEX
创建/修改/删除全文索引操作
SYNONYMCREATE SYNONYM
DROP SYNONYM
创建/删除同义词
OPERATORCREATE OPERATOR
DROP OPERATOR
创建/删除自定义运算符
GRANTGRANT授予权限操作
REVOKEREVOKE回收权限操作
AUDITAUDIT设置审计操作
NOAUDITNOAUDIT取消审计操作
INSERT TABLEINSERT INTO TABLE表上的插入操作
UPDATE TABLEUPDATE TABLE表上的修改操作
DELETE TABLEDELETE FROM TABLE表上的删除操作
SELECT TABLESELECT FROM TABLE表上的查询操作
EXECUTE PROCEDURECALL PROCEDURE调用存储过程或函数操作
PACKAGECREATE PACKAGE
DROP PACKAGE
创建/删除包规范
PACKAGE BODYCREATE PACKAGE BODY
DROP PACKAGE BODY
创建/删除包体
MAC POLICYCREATE POLICY
ALTER POLICY
DROP POLICY
创建/修改/删除策略
MAC LEVELCREATE LEVEL
ALTER LEVEL
DROP LEVEL
创建/修改/删除等级
MAC COMPARTMENTCREATE COMPARTMENT
ALTER COMPARTMENT
DROP COMPARTMENT
创建/修改/删除范围
MAC GROUPCREATE GROUP
ALTER GROUP
DROP GROUP
ALTER GROUP PARENT
创建/修改/删除组,更新父组
MAC LABELCREATE LABEL
ALTER LABEL
DROP LABEL
创建/修改/删除标记
MAC USERUSER SET LEVELS
USER SET COMPARTMENTS
USER SET GROUPS
USER SET PRIVS
设置用户等级/范围/组/特权
MAC TABLEINSERT TABLE POLICY
REMOVE TABLE POLICY
APPLY TABLE POLICY
插入/取消/应用表标记
MAC SESSIONSESSION LABEL
SESSION ROW LABEL
RESTORE DEFAULT LABELS
SAVE DEFAULT LABELS
保存/取消会话标记 设置会话默认标记 设置会话行标记
CHECKPOINTCHECKPOINT检查点(checkpoint)
SAVEPOINTSAVEPOINT保存点
EXPLAINEXPLAIN显示执行计划
NOT EXIST分析对象不存在导致的错误
DATABASEALTER DATABASE修改当前数据库操作
CONNECTLOGIN LOGOUT登录/退出操作
COMMITCOMMIT提交操作
ROLLBACKROLLBACK回滚操作
SET TRANSACTIONSET TRX ISOLATION
SET TRX READ WRITE
设置事务的读写属性和隔离级别
BACKUPBACKUP DATABASE
BACKUP TABLESPACE
BACKUP TABLE
BACKUP ARCHIVE
库/表空间/表/归档备份操作
RESTORERESTORE TABLESPACE
RESTORE TABLE
表空间/表还原操作
DIMPDIMP FULL
DIMP OWNER
DIMP SCHEMA
DIMP TABLE
逻辑导入:库级/用户级/模式级/表级
DEXPDEXP FULL
DEXP OWNER
DEXP SCHEMA
DEXP TABLE
逻辑导出:库级/用户级/模式级/表级
FLDRFLDR IN
FLDR OUT
FLDR 工具导入/导出
WARNINGAUD SPACE WARNING审计剩余可用空间不足
KEYCREATE KEY
DESTROY KEY
生成/销毁密钥
CRYPTENCRYPT
DECRYPT
数据加密/解密
DTSDTS IN
DTS OUT
DTS 工具迁入/迁出
2.1 设置语句级审计

设置语句级审计的系统过程如下:

VOID
SP_AUDIT_STMT(TYPE VARCHAR(30),USERNAME VARCHAR (128),WHENEVER VARCHAR (20)
)

TYPE :语句级审计选项,即上表中的第一列

USERNAME :用户名,NULL 表示不限制

WHENEVER :审计时机,可选的取值为:

  • ALL:所有的
  • SUCCESSFUL:操作成功时
  • FAIL:操作失败时
-- 审计表的创建、修改、删除和清空
SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');-- 对 SYSDBA 创建、修改、删除用户成功进行审计
SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');-- 对用户 CALL进行的表的修改和删除进行审计,不管失败和成功
SP_AUDIT_STMT('UPDATE TABLE', 'CALL', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'CALL', 'ALL');
2.2 取消语句级审计

取消语句级审计的系统过程如下:

VOID
SP_NOAUDIT_STMT(TYPE VARCHAR(30),USERNAME VARCHAR (128),WHENEVER VARCHAR (20)
)

TYPE :语句级审计选项,即上表中的第一列

USERNAME :用户名,NULL 表示不限制

WHENEVER :审计时机,可选的取值为:

  • ALL:所有的
  • SUCCESSFUL:操作成功时
  • FAIL:操作失败时
-- 取消对表的创建、修改、删除和清空的审计
SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');-- 取消对 SYSDBA 创建、修改、删除用户成功进行审计
SP_NOAUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');-- 取消对用户 CALL进行的表的修改和删除的审计
SP_NOAUDIT_STMT('UPDATE TABLE', 'CALL', 'ALL');
SP_NOAUDIT_STMT('DELETE TABLE', 'CALL', 'ALL');

3、对象级审计(OBJECT

对象级审计发生在具体的对象上,需要指定模式名以及对象名。其审计选项如表所示。

审计选项TABLEVIEWCOLPROCEDURE FUNCTIONTRIGGER
INSERT
UPDATE
DELETE
SELECT
EXECUTE
MERGE INTO
EXECUTE TRIGGER
LOCK TABLE
BACKUP TABLE
RESTORE TABLE
ALL(所有对象级审计选项)

注意:

对于 UPDATE 和 DELETE 操作,因为也需要做 SELECT 操作,所以只要设置审计 SELECT 操作时,UPDATE 和 DELETE 也会作为 SELECT 操作被审计。

创建测试表

CREATE SCHEMA PERSON AUTHORIZATION SYSDBA;CREATE TABLE PERSON.ADDRESS
(uid int,ADDRESS1 VARCHAR(100)
);
3.1 设置对象级审计
VOID
SP_AUDIT_OBJECT (TYPE VARCHAR(30),USERNAME VARCHAR (128),SCHNAME VARCHAR (128),TVNAME VARCHAR (128),WHENEVER VARCHAR (20)
)VOID
SP_AUDIT_OBJECT (TYPE VARCHAR(30),USERNAME VARCHAR (128),SCHNAME VARCHAR (128),TVNAME VARCHAR (128),COLNAME VARCHAR (128),WHENEVER VARCHAR (20)
)

TYPE 对象级审计选项,即上表中的第一列

USERNAME: 用户名

SCHNAME :模式名,为空时置‘null’

TVNAME :表、视图、存储过程名不能为空

COLNAME :列名

WHENEVER :审计时机,可选的取值为:

  • ALL:所有的
  • SUCCESSFUL:操作成功时
  • FAIL:操作失败时
SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;审计级别 审计项     审计条件
-------- ---------- ----------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL
STMT     TABLE      ALL
STMT     USER       SUCCESSFUL
  • 加入对象审计
-- 对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作进行审计
SQL> SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SQL> SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
-- 对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功的操作进行审计
SQL> SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;审计级别 审计项     审计条件
-------- ---------- ----------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL
STMT     TABLE      ALL
STMT     USER       SUCCESSFUL
OBJECT   INSERT     SUCCESSFUL
OBJECT   UPDATE     SUCCESSFUL
OBJECT   UPDATE     SUCCESSFUL
3.2 测试对象审计
INSERT INTO PERSON.ADDRESS VALUES(1,'福建');
UPDATE PERSON.ADDRESS SET UID = 4;
UPDATE PERSON.ADDRESS SET ADDRESS1 = '上海';
SQL> SELECT USERNAME,SCHNAME,OBJNAME,OPERATION,SUCC_FLAG,SQL_TEXT FROM V$AUDITRECORDS WHERE OBJNAME = 'ADDRESS';
*************************** 1. row ***************************USERNAME: SYSDBASCHNAME: PERSONOBJNAME: ADDRESS
OPERATION: INSERT
SUCC_FLAG: YSQL_TEXT: INSERT INTO PERSON.ADDRESS VALUES(1,'福建');
*************************** 2. row ***************************USERNAME: SYSDBASCHNAME: PERSONOBJNAME: ADDRESS
OPERATION: UPDATE
SUCC_FLAG: YSQL_TEXT: UPDATE PERSON.ADDRESS SET ADDRESS1 = '上海';

审计结果表中可以发现,语句1,3被审计记录了,而语句2没有被审计记录

3.3 取消对象级审计
VOID
SP_NOAUDIT_OBJECT (TYPE VARCHAR(30),USERNAME VARCHAR (128),SCHNAME VARCHAR (128),TVNAME VARCHAR (128),WHENEVER VARCHAR (20)
)VOID
SP_NOAUDIT_OBJECT (TYPE VARCHAR(30),USERNAME VARCHAR (128),SCHNAME VARCHAR (128),TVNAME VARCHAR (128),COLNAME VARCHAR (128),WHENEVER VARCHAR (20)
)

TYPE 对象级审计选项,即上表中的第一列

USERNAME: 用户名

SCHNAME :模式名,为空时置‘null’

TVNAME :表、视图、存储过程名不能为空

COLNAME :列名

WHENEVER :审计时机,可选的取值为:

  • ALL:所有的
  • SUCCESSFUL:操作成功时
  • FAIL:操作失败时

取消对象审计

-- 取消对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作的审计
SP_NOAUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SP_NOAUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
-- 取消对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功操作的审计
SP_NOAUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;审计级别 审计项     审计条件
-------- ---------- ----------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL
STMT     TABLE      ALL
STMT     USER       SUCCESSFUL

4、语句序列审计

DM 还提供了语句序列审计功能,作为语句级审计和对象级审计的补充。语句序列审计需要审计员预先建立一个审计规则,包含 N 条 SQL 语句(SQL1,SQL2……),如果某个会话依次执行了这些 SQL 语句,就会触发审计。

4.1 创建语句序列审计

建立语句序列审计规则的过程包括下面三个系统过程

VOIDSP_AUDIT_SQLSEQ_START(NAME VARCHAR (128)
)VOIDSP_AUDIT_SQLSEQ_ADD(NAME VARCHAR (128),SQL VARCHAR (8188)
)VOIDSP_AUDIT_SQLSEQ_END(NAME VARCHAR (128)
)

NAME :语句序列审计规则名

SQL :需要审计的语句序列中的 SQL 语句

建立语句序列审计规则需要先调用 SP_AUDIT_SQLSEQ_START,之后调用若干次 SP_AUDIT_SQLSEQ_ADD,每次加入一条 SQL 语句,审计规则中的 SQL 语句顺序根据加入 SQL 语句的顺序确定,最后调用 SP_AUDIT_SQLSEQ_END 完成规则的建立。

-- 建立一个语句序列审计规则 AUDIT_SQL1
SP_AUDIT_SQLSEQ_START('AUDIT_SQL1');
SP_AUDIT_SQLSEQ_ADD('AUDIT_SQL1', 'SELECT NAME FROM TEST1;');
SP_AUDIT_SQLSEQ_ADD('AUDIT_SQL1', 'SELECT ID FROM TEST2;');
SP_AUDIT_SQLSEQ_ADD('AUDIT_SQL1', 'SELECT * FROM TEST3;');
SP_AUDIT_SQLSEQ_END('AUDIT_SQL1');
4.2 取消语句序列审计
VOIDSP_AUDIT_SQLSEQ_DEL(NAME VARCHAR (128)

删除语句序列审计规则 AUDIT_SQL1

SP_AUDIT_SQLSEQ_DEL('AUDIT_SQL1');

5、总结

  • 只要审计功能被启用,系统级的审计记录就会产生;
  • 在进行数据库审计时,审计员之间没有区别,可以审计所有数据库对象,也可取消其他审计员的审计设置;
  • 语句级审计不针对特定的对象,只针对用户;
  • 对象级审计针对指定的用户与指定的对象进行审计;
  • 在设置审计时,审计选项不区分包含关系,都可以设置;
  • 在设置审计时,审计时机不区分包含关系,都可以进行设置;
  • 如果用户执行的一条语句与设置的若干审计项都匹配,只会在审计文件中生成一条审计记录。

七、常用的审计命令

1、开启审计

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

  • 0:关闭审计
  • 1:打开普通审计
  • 2:打开普通审计和实时审计

缺省值为 0。

SP_SET_ENABLE_AUDIT (1);

注意

审计开关必须由具有数据库审计员权限的管理员进行设置,DBA权限是开不了的。

2、查看审计开关状态

SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';

3、查看审计设置信息

SELECT * FROM SYSAUDIT;

4、查看语句序列审计设置信息

SELECT * FROM SYSAUDITSQLSEQ;

5、查看审计详细记录

SELECT * FROM V$AUDITRECORDS;

SYSAUDITOR.V$AUDITRECORDS结构

数据类型说明
USERIDINTEGER用户 ID
USERNAMEVARCHAR(128)用户名
ROLEIDINTEGER角色 ID。 没有具体角色的用户和 SQL 序列审计,没用角色信息。
ROLENAMEVARCHAR(128)角色名。 没有具体角色的用户和 SQL 序列审计,没用角色信息。
IPVARCHAR(25)IP 地址
SCHIDINTEGER模式 ID
SCHNAMEVARCHAR(128)模式名
OBJIDINTEGER对象 ID
OBJNAMEVARCHAR(128)对象名
OPERATIONVARCHAR(128)操作类型名
SUCC_FLAGCHAR(1)成功标记
SQL_TEXTVARCHAR(8188)SQL 文本
DESCRIPTIONVARCHAR(8188)描述信息
OPTIMEDATETIME操作时间
MACVARCHAR(25)操作对应的 MAC 地址
SEQNOTINYINTDMDSC 环境下表示生成审计记录的节点号,非 DMDSC 环境下始终 0
BIND_INFOVARCHAR(8188)绑定参数具体值,如果绑定参数是复杂类型,仅记录类型名,不记录具体值

6、审计相关函数

名称用途参数说明
SP_SET_ENABLE_AUDIT打开/关闭审计开关
SP_AUDIT_STMT/SP_NOAUDIT_STMT设置/取消语句级审计
SP_AUDIT_OBJECT设置对象级审计
SP_AUDIT_SQLSEQ_START
SP_AUDIT_SQLSEQ_ADD
SP_AUDIT_SQLSEQ_END
设置语句序列审计
SP_AUDIT_SQLSEQ_DEL取消语句序列审计
SP_DROP_AUDIT_FILE删除指定时间点之前的审计文件,但是不会删除 DM 当前正在使用的审计文件。TIME_STR:指定的时间字符串
TYPE:审计文件类型,0 表示删除普通审计文件,1 表示删除实时审计文件
SP_SWITCH_AUDIT_FILE切换是指生成一个新的审计文件,并将新生成的审计信息存储在新生成的审计文件中。一般用在审计文件被删除无法存储审计信息,或任何需要生成新审计文件的情况下。AUDIT_SWITCH:切换开关值,取值 1 或 2。
1 表示切换普通审计文件;2 表示同时切换普通和实时审计文件。对于 DMDSC 环境仅切换当前节点审计文件。
SF_GET_AUDIT_TYPENAME表SYSAUDIT.TYPE 值的意义描述TYPE: 审计类型,对应 SYSAUDIT 中 TYPE 字段值
SF_GET_AUDIT_LEVELNAME表SYSAUDIT.LEVEL 值的意义描述LEVEL: 审计级别,对应 SYSAUDIT 中 LEVEL 字段值
SF_GET_AUDIT_WHENEVERNAME表SYSAUDIT.WHENEVER 值的意义描述WHENEVER :审计记录生成时机,对应 SYSAUDIT 中 WHENEVER 字段值
-- 指定删除 2015-12-6 16:30:00 以前的普通审计文件
SP_DROP_AUDIT_FILE('2015-12-6 16:30:00',0);

达梦社区:https://eco.dameng.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Meta正打造一个巨型AI模型,旨在为其“整个视频生态系统”提供动力,一位高管透露

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Swift 入门学习:集合(Collection)类型趣谈-上

概览 集合的概念在任何编程语言中都占有重要的位置,正所谓:“古来聚散地,宿昔长荆棘;游人聚散中,一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理,怎能不让…

Mac笔记本聚焦SpotLight占用内存太高的 解法

分享一个自创的绝对有效的解决苹果电脑Mac笔记本SpotLight聚焦占用内存过高的方法! 一、背景 / 问题原因 1、Mac的聚焦功能,可以快速打开应用程序,非常方便! But,随着电脑的使用文件等越来越多,就会导致SpotLight聚焦需要更多更多甚至巨多的内存来建立索引,就会导致电脑…

tcp流式服务和粘包问题

目录 1.概念 2.流式服务 3.粘包问题 1.概念 套接字是一个全双工的 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输. TCP连接是全双工的,即双方的数据读写可以通过一个连接进行,完成…

【C语言】linux内核ip_local_out函数

一、讲解 这个函数 __ip_local_out 是 Linux 内核网络子系统中的函数,部分与本地出口的 IPv4 数据包发送相关。下面讲解这段代码的每一部分: 1. 函数声明 int __ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb): -…

剪枝例题一道

例题一 Code force round 我的思路,DFS遍历所有x,y,然后用set记录所有k,但是TLE了,最后发现,可以应用剪枝,如果一个x,y得出的k已经在set中存在了,那么不用再继续DFS后续…

react实战——react旅游网

慕课网react实战 搭建项目问题1.按照官网在index.tsx中引入antd出错?2.typescript中如何使用react-router3.react-router3.1 V63.2 V53.3V6实现私有路由 4.函数式组件接收props参数时定义数据接口?5.使用TypeScript开发react项目:6.要使一个组…

SQLite3中的callback回调函数注意的细节

调用 sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)该例程提供了一个执行 SQL 命令的快捷方式, SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。 在这里, 第一个参数 sqlite3 是打开的数据库对…

代码随想录算法训练营第day41|背包理论基础、416. 分割等和子集

目录 a.背包理论基础——01背包 1.二维数组的01背包表示 2.一维滚动数组表示 b. 416. 分割等和子集 - 力扣(LeetCode) a.背包理论基础——01背包 背包问题分类: 对于面试的话,其实掌握01背包,和完全背包&#xff…

Excel F4键的作用

目录 一. 单元格相对/绝对引用转换二. 重复上一步操作 一. 单元格相对/绝对引用转换 ⏹ 使用F4键 如下图所示,B1单元格引用了A1单元格的内容。此时是使用相对引用,可以按下键盘上的F4键进行相对引用和绝对引用的转换。 二. 重复上一步操作 ⏹添加或删除…

SSM框架,MyBatis-Plus的学习(下)

条件构造器 使用MyBatis-Plus的条件构造器,可以构建灵活高效的查询条件,可以通过链式调用来组合多个条件。 条件构造器的继承结构 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装&#xf…

首屏性能优化:提升用户体验的秘籍

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

复盘-excel

excel-选列没有用,选小标题才可以 将簇状柱形图放置在一个新表上##### excel: 添加数据模型时,要通过套用表格格式与外部断开连接 透视分析2010年人数未解决(第四套) 通过日期显示星期几 判断星期几 因为前面已经通过星期六&#xff0c…

03_Tomcat

文章目录 Tomcat概念自制简易的服务器JavaEE规范Tomcat安装Tomcat启动Tomcat的资源部署直接部署虚拟映射 Tomcat的设置 Tomcat 概念 服务器:两层含义。 软件层面:软件,可以将本地的资源发布到网络中,供网络上面的其他用户来访问…

WPF 防止按钮Click时间多次点击响应

可能不是最好的办法,但是用起来效果也还是可以的。 原理:通过IsEnabled属性来控制按钮状态。btnConfirm.IsEnabled / this.IsEndbled 这两种方式是等价的。 案例比较简单,如果后期做开发的话代码量变大,只在结尾添加 this.IsEn…

网络综合布线

综合布线的英文表达为Structured Cabling System(通俗表达为Cabling System,简称CSC,最早由AT&T提出)或Premises Distribution System(PDS,目前国标采用这一称法)。   综合布线起源与发展…

Druid数据库连接池配置

客户端DruidDataSource 配置项描述建议值maxWait从连接池中获取connetion的最长等待时间10s TimeBetweenEvictionRunsMillis 轮询检查数据库连接池状态的间隔60s MinEvictableIdleTimeMillis 躺在连接池没有干活的空闲状态的最小值300s MaxEvictableIdleTimeMillis 1.躺在连接…

grafana table合并查询

注:本文基于Grafana v9.2.8编写 1 问题 默认情况下table展示的是一个查询返回的多个field,但是我想要的数据在不同的metric上,比如我需要显示某个pod的读写IO,但是读和写这两个指标存在于两个不同的metirc,需要分别查…

LeetCode27: 移除元素

题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

【DevOps基础篇】容器化架构基础设施监控方案

【DevOps基础篇】容器化架构基础设施监控方案 目录 【DevOps基础篇】容器化架构基础设施监控方案要监视什么不同监控系统方案比较1. Datadog2. Prometheus3. ELK(Elasticsearch、Logstash、Kibana)4. Sysdig5. 自行打造!如何选择总结推荐超级课程: Docker快速入门到精通 当…