加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何登录Oracle数据库?

发布时间:2020-12-12 15:14:01 所属栏目:百科 来源:网络整理
导读:我对Oracle数据库中常见的日志记录方法感兴趣. 我们的方法如下: 我们为要记录的表创建一个日志表.日志表包含原始表的所有列以及一些特殊字段,包括时间戳,修改类型(插入,更新,删除),修饰符的id.原始表上的触发器为每个插入和删除创建一个日志行,为修改创建两
我对Oracle数据库中常见的日志记录方法感兴趣.
我们的方法如下:

我们为要记录的表创建一个日志表.日志表包含原始表的所有列以及一些特殊字段,包括时间戳,修改类型(插入,更新,删除),修饰符的id.原始表上的触发器为每个插入和删除创建一个日志行,为修改创建两行.日志行包含更改原始行之前和之后的数据.

虽然使用此方法可以及时挖掘记录的状态,但它有一些缺点:

>在原始表中引入新列不会自动涉及日志修改.
>日志修改会影响日志表和触发器,很容易搞砸.
>无法以直接的方式确定特定过去时间的记录状态.
> ……

还有其他可能性吗?
可以使用哪种工具来解决这个问题?

我只知道log4plsql.这个工具的优点/缺点是什么?

编辑:根据Brian的回答,我发现以下reference解释了标准和细粒度审计.

这听起来像是在’审计’之后. Oracle有一个名为Fine Grain Auditing(FGA)的内置功能.简而言之,您可以审核所有内容或特定条件.真正酷的是你可以’审核’选择以及交易.简单的命令来开始审计:
audit UPDATE on SCOTT.EMP by access;

将其视为select语句的“触发器”.例如,您创建策略:

begin
   dbms_fga.add_policy (
      object_schema=>'BANK',object_name=>'ACCOUNTS',policy_name=>'ACCOUNTS_ACCESS'
  );
end;

定义策略后,当用户以常规方式查询表时,如下所示:

select * from bank.accounts;

审计跟踪记录此操作.您可以通过发出以下内容来查看路径

select timestamp,db_user,os_user,object_schema,object_name,sql_text
from dba_fga_audit_trail;

TIMESTAMP DB_USER OS_USER OBJECT_ OBJECT_N SQL_TEXT
--------- ------- ------- ------- -------- ----------------------
22-OCT-08 BANK    ananda  BANK    ACCOUNTS select * from accounts

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读