附录¶
在神通数据库中,为了管理上的方便,即使存在对相应语句执行失败审计配置,当这些SQL语句通不过语法检查,或虽然通过了语法检查但通不过语义检查时,神通数据库不会记录它们的审计踪迹,因为这些语句要么不属于神通数据库管理系统支持的操作,要么是对不存在的对象操作,它们不会对数据库中数据造成任何危害。大致说来,对于如下情况,神通数据库不会记录审计踪迹:
SELECT、INSERT、UPDATE和DELETE中,如果操作的对象不存在,不记录审计踪迹。
INSERT语句中,要插入的列的个数大于表定义时列的个数,不记录审计踪迹。 如执行:
CREATE TABLE tab( a int);
INSERT INTO tab VALUES( 1, 2);
对于第二条INSERT语句,不会记录审计踪迹,因为表tab中只有一列,而该INSERT语句试图插入两列。
定位删除时如果游标不存在或游标未打开或游标为只读游标,不记录审计踪迹。
CREATE TABLE时指定两个主键,不记录审计踪迹。
如:
CREATE TABLE tab2( a int primary key, b char(10) primary key, c char(10) ); -- 不记录审计踪迹。
CREATE TABLE AS时,新表的列数大于表定义的查询的返回结果数,不记录审计踪迹。
如:
CREATE TABLE tab1( a int);
CREATE TABLE tab2(a, b, c ) AS SELECT * FROM tab1;
对于第二条语句不记录审计踪迹。
CREATE SCHEMA时,新模式中的对象又指定了别的模式,不记录审计踪迹。
如:
CREATE TABLE tab1( a int);
CREATE SCHEMA sch1 AUTHORIZATION sysdba CREATE TABLE public.tab2( a int);
CREATE SCHEMA sch1 AUTHORIZATION sysdba CREATE VIEW public.vtab AS SELECT * FROM tab1;
对于两条CREATE SCHEMA语句,由于新建的模式为sch1,但新建模式对象tab2和vtab都指定了模式public,所以不记录审计踪迹。
ALTER TABLE时,如果要更改的表不存在,不记录审计踪迹。
CREATE VIEW时,视图依赖的表不存在,不记录审计踪迹。
CREATE VIEW时,视图中指定的列的个数超过视图依赖的查询返回的列的个数,不记录审计踪迹。
如执行:
CREATE TABLE tab( a int);
CREATE VIEW v_tab( va, vb) as SELECT * FROM tab;
对于第二条语句是不会记录审计踪迹的。
对产生语法和语义错误的语句,审计不将其记录到审计踪迹中。
以上只是简单列出了神通数据库不记录审计踪迹的部分情况,用户在使用过程中如果发现还有其它情况也不能记录审计踪迹,请检查相应的SQL语句是的语法和。