我已经设法在Oracle中创建了一个审计表,当记录被更新、删除或插入到employees表中时,它会对这些记录进行审计。我也做了它,所以它只审计记录,当变化是在办公时间(上午9点到下午5点)。
如果你想看到这方面的代码,请让我知道,但我只是想知道,是否有可能只审计基于工作角色的记录以及。在employee表中有一个作业角色列,如下所示。
Job_role
Director
Security Guard II
Administration Manager
Warehouse Assistant I我只希望它审计由保安或仓库助理所做的更改,因为这些工作角色实际上不应该与员工数据库交互。
感谢您的帮助。
谢谢
发布于 2013-04-12 21:31:42
您需要做的是将用户的工作描述存储在一个会话变量中。
为此,您可以使用CREATE CONTEXT命令声明一个名称空间。Docs here.
然后是使用DBMS_SESSION.set_context()查询USERS表并将作业描述存储在名称空间中的an AFTER-LOGON database trigger。Docs here.
最后,在使用审计命令时,使用SYS_CONTEXT()读取存储值,并做出适当的决定:
if sys_context('AUDIT_INFO', 'JOB_DESCR') = 'Warehouse Assistant I'
then
call_your_audit_proc(.....);
end if;https://stackoverflow.com/questions/15971592
复制相似问题