oracle10g日志审计操作文档

                      Oracle10g审计
1查看审计是否打开
首先登陆oracle后输入show parameter  audit_trail来查看审计是否打开
SQL > show  parameter  audit_trail ;
返回结果:
NAME            TYPE              VALUE
udit_trail          string              NONE
NONE表示审计未打开。
说明VALUE :返回值是NONE/FALSE表示审计未打开;返回值是DB/TURE表示审计功能已经打开
2、打开审计
SQL > alter system set audit_trail=’DB’  scope=spfile ;
这里对audit_trail=进行说明:audit_trail=’DB’ 表示把审计日志记录数据库sys.audit$表中。
                            audit_trail=’DB,extended’ 在DB选项基础上,在audit$表中还增加了SQLBIND和SQLTEXT两个clob栏位,用来存储SQLBIND和SQLTEXT信息。
                        audit_trail=‘OS’ 审计结果存放在操作系统的审计信息中,若是windows 平台,audit trail会记录在windows的事件管理器中,若是linux/unix平台则会记录在audit_file_dest参数指定文件中。
                        audit_trail=‘xml’审计结果存放在XML中, 并包含XML文件可以由数据库以外的工具方便地处理,过滤出有用的事件,与其它系统中的审计日志组合,并格式化HTML显示,操作系统文件提供比SYS.AUD$表更强大的安全性,特别是在希望阻止数据库管理员查看或修改审计跟踪的情况下,即使关闭数据库实例,仍然可以继续使用保存在数据库外的审计日志。用以下代码确定写入审计文件的目录: audit_file_dest='directorypath' 。注意,directorypath这不是一个目录对象,,而是操作系统目录的实际路径名。
                    audit_trail=‘xml,extended’,存储为xml,并包含SQLBIND和SQLTEXT信息。
audit_trailstatic参数,每次修改后需要重新启动数据库才能生效。
备注:默认审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间有足够的空间存放审计信息。若SYSTEM表空间没有足够的空间存放审计信息或者为了不影响系统的性能保护SYSTEM表空间,可以将审计结果表从system表空间里移动到别的表空间上
下面是具体的操作过程(需要SYSDBA权限才能进行该操作)
    一、若设置audit_trail=’DB’
SQL> alter table audit$ move tablespace users;
SQL> alter index i_audit rebuild tablespace users;
二、若设置audit_trail=’DBextended’
SQL> alter table audit$ move tablespace users;
SQL> alter table audit$ move lob(sqlbind) store as(tablespace users)
SQL> alter table audit$ move lob(SQLTEXT) store as(tablespace users)
SQL> alter index i_audit rebuild tablespace users;
将审计结果表从system表空间里移动到users表空间。
可以通过以下命令查看具体表空间剩余大小:
select sum(bytes)/1024/1024 as free_space , tablespace_name from dba_free_space group by tablespace_name ;
3、确定相关的表是否安装
SQL > select * from sys.audit$  ;
返回结果 :未选定行。表示该表已经安装
SQL > select * from dba_audit_trail ;   
返回结果 :未选定行。表示该表已经安装
上述查询的时候发现表不存在,说明审计相关的表还没有安装
4、重新启动数据库的服务,数据库启动后再次输入来查看审计打开是否生效
SQL > show  parameter  audit_trail ;
返回结果:
NAME            TYPE              VALUE
udit_trail          string              DB
VALUE返回值是DB/TURE表示审计已经打开,并把审计结果记录到数据库sys.audit$表中。
5、审计级别设置
当开启审计功能后,oracle10g可在四个级别对数据库进行审计:Statement(语句)、Privile
ge(权限)、object(对象)、Network(网络)。
一、语句
按语句来审计,比如audit table 会审计数据库中所有的create table ,drop table ,truncate table 语句,audit all 是审计所有的操作 ,建议不要使用audit all,这样审计的内容太多,对数据库性能会造成很大影响,audit session by cmy;会审计cmy用户所有的数据库连接。
例子:
SQL  >  audit create table; ——审计所有创建表的操作
SQL  >  audit table ;——审计 create table,drop table 操作
SQL  >  audit session by system whenever not successful;
二、权限
按权限来审计,当用户使用了该权限,如执行grant select any table to a; audit select any tabl
e; 语句后,当用a 访问了用户b表时会用到select any table权限,所以该语句能被审计到
例子:
SQL  >  AUDIT DELETE ANY TABLE;  对任何表里记录删除操作不管成功与否都审计
SQL  > AUDIT SELECT TABLE,INSERT TABLE,DELETE TABLE,EXECUTE  PROCEDURE  BY ACCESS WHENEVER NOT SUCCESSFUL; ——审计对表里记录进行查询、插入、删除和执行存储过程不成功的进行审计日志审计
三、对象
按对象来审计,只审计on关键字指定对象的相关操作
例子:
SQL  > audit delete,updata,insert on user.table by test ;——审计test用户对表user.table 的delete、updata、 insert 操作
四、网络
备注: 每次增加或取消审计项后都必须得重新启动数据库服务后配置内容才能生效,所以建议在进行审计操作前要规划好需要审计哪些内容,打开哪些审计项。
6、审计的一些其他选项
一 、by access / by session
by access 每个被审计的操作都生成一条audit trail
by session 一个会话里同类型的操作只会生成一条 audit trail ,
不进行设置默认为by session
例子:
SQL  >  audit select table by u_test by access;——对系统中u_test用户进行审计
二、whenever [not] successful
whenever  successful操作成功才被审计, whenever not successful 操作失败才被审计
不进行设置默认为不管操作成功与否都会被审计
例子: 
SQL  >  AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; ——只审计删除成功的情况 
7、一些常用和审计相关视图
DBA_AUDIT_TRAIL查看审计记录, DBA_AUDIT_OBJECT、DBA_AUDIT_SESSION、DBA_AUDIT_STATEMENT是DBA_AUDIT_TRAIL的子集;
USER_AUDIT_SESSION 用户连接或断开的全部审计跟踪记录;
USER_AUDIT_TRAIL与用户有关的审计跟踪记录;
USER_AUDIT_STATEMENT列出用户发出的GRANT,REVOKE,AUDIT,NOAUDIT,ALTER SYSTEM语句的审计;
USER_AUDIT_OBJECT 对象的语句审计跟踪记录;
DBA_STMT_AUDIT_OPTS查看数据库当前设置了哪些语句级别的审计;
DBA_OBJ_AUDIT_OPTS查看数据库当前设置了哪些对象级别的审计;
DBA_PRIV_AUDIT_OPTS查看数据库当前设置了哪些权限级别的审计;
ALL_DEF_AUDIT_OPTS查看数据库当前用on default子句设置了哪些默认对象审计
8、取消审计
将对应审计语句的audit 改为noaudit即可,如audit session whenever successful 对应的取消审计语句为noaudit session whenever successful
9、清除审计记录
SQL  > delete from  sys.aud$; 或者执行
SQL  >truncate  table sys.aud$;
10Oracle日志文件存放目录
告警日志 $ORACLE_BASE/admin/orasid/bdump/alert_orasid.log
监听日志 $ORACLE_HOME/network/log/listener.log
 
最近遇到一个使用了Oracle数据库的服务器,终于搞到了网站后台管理界面的所有用户密码。我发现Oracle操作起来真是太麻烦,为了兄弟们以后少走些弯路,我把当中必需的命令整理出来。
1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。
2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i;
3、SQL>connect / as sysdba ;(as sysoper)或
connect internal/oracle AS SYSDBA ;(scott/tiger)
conn sys/change_on_install as sysdba;
4、SQL>startup; 启动数据库实例
5、查看当前的所有数据库: select * from v$database;
select name from v$database;
6、desc v$databases; 查看数据库结构字段
7、怎样查看哪些用户拥有SYSDBA、SYSOPER权限:
SQL>select * from V_$PWFILE_USERS;
Show user;查看当前数据库连接用户
8、进入test数据库:database test;
9、查看所有的数据库实例:select * from v$instance;
如:ora9i
10、查看当前库的所有数据表:
SQL> select TABLE_NAME from all_tables;
select * from all_tables;
SQL> select table_name from all_tables where table_name like '%u%';
TABLE_NAME
------------------------------
_default_auditing_options_
11、查看表结构:desc all_tables;
12、显示CQI.T_BBS_XUSER的所有字段结构:
desc CQI.T_BBS_XUSER;
13、获得CQI.T_BBS_XUSER表中的记录:
select * from CQI.T_BBS_XUSER;
14、增加数据库用户:(test11/test)
create user test11 identified by test default tablespace users Temporary TABLESPACE Temp;
15、用户授权:
grant connect,resource,dba to test11;
grant sysdba to test11;
commit;
16、更改数据库用户的密码:(将sys与system的密码改为test.)
alter user sys indentified by test;
alter user system indentified by test;
 

本文发布于:2024-09-23 01:35:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/386687.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:审计   数据库   用户   查看   记录   操作   空间   打开
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议