《Oracle 稽核方式解析 [audit]》

时间:2021-10-15 04:58:41

摘要:《Oracle 稽核方式解析 [audit]》


以下是参考网络上文档后写下,若有错误还请指教,谢谢.

-----------------------------------------------------------------------------------------------------------------

1.Oracle audit:? 特定对象对某种权限的使用;对特定表 select、insert、update、delete;

? 例如: A. Ting 使用到 "Select any table" 的权限,存取Chemo的某张表,但是并未透过正式授权。

? ?B. Create Table 的权限使用

? ?C. Update Ting.medmedf

? 可稽核的内容: 可得知OS登入的账号、使用的oracle账号、机器名称、稽核被触发的时间、依据稽核内容记录。

? 例如: 使用者在何时登入系统;使用者是否存取特定数据表。

? 优点: A. 每个session 只会产生一笔稽核数据;或是每次存取数据表时一笔稽核数据。 资源使用较 FGA (Fine-grained audit) 少。

B. 可将此记录记在 DB 或是 系统事件检视器中。? 缺点: A.无法得知细节资讯。例如无法确切得知使用者存取的是那一笔数据,用

了什么SQL,改了什么数据。? ====>? 可透过trigger实现,但仅能针对特定重要数据表。

B.若要对特定对象下的所有数据表作稽核,需要逐笔设定。

C.audit 设定需变更数据库参数;必须重启数据库才能变更设定。

2.System triggers : 与一般建立在数据表上的trigger不同。 此 trigger 是建立在系统事件之上;例如 登入、登出、数据库开启、

关、creation、altering、dropping of schema objects。

AFTER STARTUP

BEFORE SHUTDOWN

AFTER LOGON

BEFORE LOGOFF

AFTER DB_ROLE_CHANGE -- for Data Guard failover and switchover

AFTER SUSPEND

AFTER SERVERERROR

例如:

CREATE OR REPLACE TRIGGER bcs_trigger

BEFORE LOGON

ON DATABASE

BEGIN

? NULL;

END:

2.1 DDL trigger : 当Schema 有ddl异动时触发

BEFORE / AFTER ALTER

BEFORE / AFTER ANALYZE

BEFORE / AFTER ASSOCIATE STATISTICS

BEFORE / AFTER AUDIT

BEFORE / AFTER COMMENT

BEFORE / AFTER CREATE

BEFORE / AFTER DDL

BEFORE / AFTER DISASSOCIATE STATISTICS

BEFORE / AFTER DROP

BEFORE / AFTER GRANT

BEFORE / AFTER NOAUDIT

BEFORE / AFTER RENAME

BEFORE / AFTER REVOKE

BEFORE / AFTER TRUNCATE

AFTER SUSPEND

例如:

CREATE OR REPLACE TRIGGER bcs_trigger

BEFORE CREATE

ON SCHEMA

BEGIN

? NULL;

END:

3.Update、delete、insert triggers: 建立在数据上的trigger,可得知使用者操作的细微动作;例如 哪一笔数据被更新,原本数据的

样与之后数据的模样均可被记录。? 缺点: 只能针对特定重要数据表记录。

4.Fine-grained audit: 可针对特定数据表的存取作记录,会有当时执行的SQL语句及可限制某条件下被操作才稽核。

? 优点: A. 不须重启数据库,仅须执行package (dbms_fga)

B.可知道所操作的SQL命令。

? 缺点: A. oracle 9i 只能针对 select 作稽核; oracle 10g 可以作 select、update 、insert、 delete的稽核

B. 因每个作业都会产生一笔数据,所以资源使用较 Oracle audit 多。

C. 若要对特定对象下的所有数据表作稽核,需要逐笔设定。 日后若有新的数据表,须再次设定。

Fine-grained auditing may be useful for specific auditing situations, but is not suggested for daily auditing activities.

5.System log: 事件检视器

上述作业建议要针对特定用途而使用,或定期作稽核数据的清除或备份。

否则日后容易变成系统负担;数据过多难以稽核使用。

原文:大专栏  《Oracle 稽核方式解析 [audit]》