安装oracle
https://hub.docker.com/r/dragonbest520/oracle-xe-10g
查询是否开启审计
show parameter audit;
使用ssh登陆
ssh root@localhost -p 49160
password: admin
开启审计
alter system set audit_sys_operations=TRUE scope=spfile;
alter system set audit_trail=DB scope=spfile;
alter system set audit_trail=db,extended scope=spfile;
查看审计结果
select username 用户,action_name 行为,timestamp 时间
from dba_audit_trail
where username='lxg';
关闭审计
alter system set audit_trail=none;
审计策略
监视lxg用户 all 表示所有操作, by 具体用户, by access 是所有的访问操作
audit all by lxg by access;
审计不成功的登陆
AUDIT FAILED LOGIN;
登录失败
select sessionid,timestamp,username,comment_text from dba_audit_trail where comment_text like '%Authenticated%' and RETURNCODE=1017
查看审计结果
SELECT * FROM dba_audit_trail;
语句审计
AUDIT sql_statement_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;
如果确实希望审计所有类型的表访问或某个用户的任何权限,则可以指定all而不是单个的语句类型或对象。
表1列出了可以审计的语句类型,并且在每个类别中包含了相关语句的简要描述。如果指定all,则审计该列表中的任何语句。然而,表2中的语句类型在启用审计时不属于all类别;必须在audit命令中显式地指定它们。
表1
语句选项与SQL操作表格
语句选项 | SQL操作 |
---|---|
ALTER SYSTEM | 所有ALTER SYSTEM选项,例如,动态改变实例参数,切换到下一个日志文件组,以及终止用户会话 |
CLUSTER | CREATE、ALTER、DROP或TRUNCATE集群 |
CONTEXT | CREATE CONTEXT或DROP CONTEXT |
DATABASE LINK | CREATE或DROP数据库链接 |
DIMENSION | CREATE、ALTER或DROP维数 |
DIRECTORY | CREATE或DROP目录 |
INDEX | CREATE、ALTER或DROP索引 |
MATERIALIZED VIEW | CREATE、ALTER或DROP物化视图 |
NOT EXISTS | 由于不存在的引用对象而造成的SQL语句的失败 |
PROCEDURE | CREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE |
PROFILE | CREATE、ALTER或DROP配置文件 |
PUBLIC DATABASE LINK | CREATE或DROP公有数据库链接 |
PUBLIC SYNONYM | CREATE或DROP公有同义词 |
ROLE | CREATE、ALTER、DROP或SET角色 |
ROLLBACK SEGMENT | CREATE、ALTER或DROP回滚段 |
SEQUENCE | CREATE或DROP序列 |
SESSION | 登录和退出 |
SYNONYM | CREATE或DROP同义词 |
SYSTEM AUDIT | 系统权限的AUDIT或NOAUDIT |
SYSTEM GRANT | GRANT或REVOKE系统权限和角色 |
TABLE | CREATE、DROP或TRUNCATE表 |
TABLESPACE | CREATE、ALTER或DROP表空间 |
TRIGGER | CREATE、ALTER(启用/禁用)、DROP触发器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE |
TYPE | CREATE、ALTER和DROP类型以及类型主体 |
USER | CREATE、ALTER或DROP用户 |
VIEW | CREATE或DROP视图 |
表2
语句选项与SQL操作表格
语句选项 | SQL操作 |
---|---|
ALTER SEQUENCE | 任何ALTER SEQUENCE命令 |
ALTER TABLE | 任何ALTER TABLE命令 |
COMMENT TABLE | 添加注释到表、视图、物化视图或它们中的任何列 |
DELETE TABLE | 删除表或视图中的行 |
EXECUTE PROCEDURE | 执行程序包中的过程、函数或任何变量或游标 |
GRANT DIRECTORY | GRANT或REVOKE DIRECTORY对象上的权限 |
GRANT PROCEDURE | GRANT或REVOKE过程、函数或程序包上的权限 |
GRANT SEQUENCE | GRANT或REVOKE序列上的权限 |
GRANT TABLE | GRANT或REVOKE表、视图或物化视图上的权限 |
GRANT TYPE | GRANT或REVOKE TYPE上的权限 |
INSERT TABLE | INSERT INTO表或视图 |
LOCK TABLE | 表或视图上的LOCK TABLE命令 |
SELECT SEQUENCE | 引用序列的CURRVAL或NEXTVAL的任何命令 |
SELECT TABLE | SELECT FROM表、视图或物化视图 |
UPDATE TABLE | 在表或视图上执行UPDATE |
权限审计
模式对象审计
AUDIT schema_object_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;
schema_object_clause
对象选项 | 说明 |
---|---|
ALTER | 改变表、序列或物化视图 |
AUDIT | 审计任何对象上的命令 |
COMMENT | 添加注释到表、视图或物化视图 |
DELETE | 从表、视图或物化视图中删除行 |
EXECUTE | 执行过程、函数或程序包 |
FLASHBACK | 执行表或视图上的闪回操作 |
GRANT | 授予任何类型对象上的权限 |
INDEX | 创建表或物化视图上的索引 |
INSERT | 将行插入表、视图或物化视图中 |
LOCK | 锁定表、视图或物化视图 |
READ | 对 DIRECTORY 对象的内容执行读操作 |
RENAME | 重命名表、视图或过程 |
SELECT | 从表、视图、序列或物化视图中选择行 |
UPDATE | 更新表、视图或物化视图 |
任意SCHEME,TABLE若发生了Insert,update,delete 操作将会审计
AUDIT INSERT, UPDATE,DELETE ON DEFAULT BY ACCESS;
AUDIT INSERT, UPDATE,DELETE ON DEFAULT BY ACCESS WHENEVER SUCCESSFUL;
AUDIT ALL BY lxg BY ACCESS;
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY lxg BY ACCESS;
AUDIT EXECUTE PROCEDURE BY lxg BY ACCESS;
附录
序号 | 视图名称 | 描述 |
---|---|---|
1 | STMT_AUDIT_OPTION_MAP | 审计选项类型代码 |
2 | AUDIT_ACTIONS | action代码 |
3 | ALL_DEF_AUDIT_OPTS | 对象创建时默认的对象审计选项 |
4 | DBA_STMT_AUDIT_OPTS | 当前数据库系统审计选项 |
5 | DBA_PRIV_AUDIT_OPTS | 权限审计选项 |
6 | DBA_OBJ_AUDIT_OPTS | - |
7 | USER_OBJ_AUDIT_OPTS | 对象审计选项 |
8 | DBA_AUDIT_TRAIL | - |
9 | USER_AUDIT_TRAIL | 审计记录 |
10 | DBA_AUDIT_OBJECT | - |
11 | USER_AUDIT_OBJECT | 审计对象列表 |
12 | DBA_AUDIT_SESSION | - |
13 | USER_AUDIT_SESSION | session审计 |
14 | DBA_AUDIT_STATEMENT | - |
15 | USER_AUDIT_STATEMENT | 语句审计 |
16 | DBA_AUDIT_EXISTS | 使用BY AUDIT NOT EXISTS选项的审计 |
17 | DBA_AUDIT_POLICIES | 审计POLICIES |
18 | DBA_COMMON_AUDIT_TRAIL | 标准审计+精细审计 |
注意
SYS.AUD$注意监控该表的大小,以避免影响SYS表空间中其他对象的空间需求。 推荐周期性归档SYS.AUD$中的行,并且截取该表。Oracle提供了角色 DELETE_CATALOG_ROLE,和批处理作业中的特殊账户一起使用,用于归档和截取审计表。
参考资料
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付