在 Oracle 数据库的世界里,审计功能就像一个忠诚的 “记录员”,它能帮我们追踪数据库里的各种操作,对数据库的安全和管理至关重要。今天,就带大家深入了解数据库审计的启停流程,让你轻松掌握这项技能,开启 Oracle 数据库运维的学习之旅!
数据库审计开启前期准备
开启和关闭审计可不是一件小事哦,这需要重启数据库实例呢!所以呀,咱们得提前安排好停机维护的时间窗口,就像给数据库安排一个 “小假期”,在这段时间里好好对它进行 “体检” 和调整。另外,开启审计之前,要为和审计相关的表准备足够多的表空间哦,这就好比给它们提前准备好足够大的 “房子”,不然它们可就没地方 “住” 啦!
风险评估
说到这儿,大家可得注意啦!审计的开启与关闭因为涉及到重启数据库,所以存在一定风险哦。在重启之前,一定要做好备份工作,这就像是给数据库拍一张 “照片”,万一出了啥问题,咱们还能用这张 “照片” 把它恢复过来。还有呀,审计路径的设置以及存放表空间的设置一定要认真核对,要是弄错了,那可就麻烦啦,存在一定风险呢!
数据库审计开启的实施
检查审计功能是否启动
咱们先来检查一下审计功能是不是已经启动啦。打开终端,切换到 oracle 用户,然后用 sqlplus 连接到数据库:
[root@localhost ~]
# su - oracle
[oracle@localhost ~]$ sqlplus / as sysdba
SQL>
show parameter
audit
看,会出现一堆参数信息,咱们重点关注
audit_sys_operations 和
audit_trail 这两个参数的值,如果它们的值不是咱们想要的,那就要进行下一步操作啦。
修改审计表及索引的表空间
这一步可有点复杂哦,大家可得仔细看啦。要是审计表和索引的表空间不够用了,咱们就得给它们换个 “大房子”:
sql>
alter
table aud$
move
tablespace Tablespacename;
sql>
alter
index I_aud1
rebuild
online
tablespace Tablespacename;
sql>
alter
table
audit$
move
tablespace Tablespacename;
sql>
alter
index i_audit
rebuild
online
tablespace Tablespacename;
sql>
alter
table audit_actions
move
tablespace Tablespacename;
sql>
alter
index i_audit_actions
rebuild
online
tablespace Tablespacename;
这里要把
Tablespacename 换成咱们准备好的表空间名字哦,就像是把东西搬到指定的房间里一样。
开启审计
现在,咱们来开启审计功能啦:
SQL>
alter
system
set audit_sys_operations=
TRUE
scope=
spfile;
-- 审计 sys 用户的活动
System altered.
SQL>
alter
system
set audit_trail=db,
extended
scope=
spfile;
-- 在该模式下会将审计信息保存在 sys.aud$ 表中,同时会将 sql text 以及 sql bind 写入 sys.aud$ 表中
System altered.
开启完之后,别忘了重启数据库实例哦:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
看,数据库又重新启动啦,这时候审计功能就已经开启啦!
检查审计功能是否已开启
为了确认审计功能真的开启了,咱们再检查一下:
SQL>
show parameter
audit
看到
audit_sys_operations 的值是
TRUE,
audit_trail 的值是
DB,EXTENDED,那就说明审计功能已经成功开启啦!
关闭审计
如果咱们不想再进行审计了,那就来关闭审计功能吧。先执行下面这条命令:
SQL>
alter
system
set audit_trail =
none
scope=
spfile;
然后,同样需要重启数据库实例:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
重启完之后,再检查一下:
SQL>
show parameter
audit
看到
audit_trail 的值是
NONE,那就说明审计功能已经成功关闭啦!
数据库审计启停后的检查
最后一步,咱们来检查一下审计启停之后的情况。登录数据库,用下面的命令查看审计日志表,看看有没有出现审计记录:
SQL>
conn wytest/
oracle;
SQL>
select *
from (
select sessionid,userid,userhost,ntimestamp
# from sys.aud$ order by ntimestamp# desc) where rownum=1;
如果能看到相应的审计记录,那就说明审计启停操作是成功啦!
