ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE AUDIT

ORACLE AUDIT

原创 Linux操作系统 作者:大米嗵嗵 时间:2012-05-18 09:04:48 0 删除 编辑

打开数据库审计功能:

alter system set audit_sys_operations=true scope=spfile;

alter system set audit_trail=db scope=spfile;

重启数据库

SQL> show parameter audit_

NAME                                 TYPE        VALUE

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

audit_sys_operations                 boolean     TRUE

audit_trail                          string      DB

transaction_auditing                 boolean     TRUE

audit_sys_operations审计SYSDBA的活动。默认值是false。相关的审计信息不会记录在aud$中,因为有可能此时数据库还未启动,只能记录在操作系统层面的文件中。默认为false,不意味着没有审计信息,像conn / as sysdba这样的操作仍然会被记录。audit_file_dest参数指定的审计信息的文件夹。

audit_sys_operations设置成true后,那么做为sysdbasysoper连接数据库的用户所发布的每条语句都会被写入操作系统的审计中,从而能够给出DBA所进行操作的完整记录。

如果是windows平台,audti trail会记录在windows的事件管理中,假如是linux/unix平台则会记录在audit_file_dest参数指定的文件中。

 

1.对用户登录的审计:

开启审计:

使用audit开启审计,使用noaudit取消审计。如audit session whenever successful对应的取消审计语句为noaudit session whenever successful;

SQL> audit session whenever successful;

Audit succeeded

通过查询审计相关记录视图

select * from DBA_AUDIT_SESSION;

Timestamp表示登录时间

Logoff_time表示退出登录时间

 

通过SYS.AUD$可以查到相关登录的IP(COMMENT$TEXT)

select * from SYS.AUD$;

Authenticated by: DATABASE; Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.4.174)(PORT=1835))

 

 

2.密码规则审计

密码规则的审计需要新建profile文件,并指定有相关需求的用户。

另外需要创建存储过程,并修改dba_profiles参数PASSWORD_VERIFY_FUNCTION,默认为NULL

存储过程的创建可参考$ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql(附录)

如果需要将密码修改结果保存到记录表中,在存储过程中(文件末RETURN(TRUE);语句前)添加以下语句

INSERT INTO passwd_changed VALUES(username,old_password,password);

并且新建记录表

SQL> create table passwd_changed

(

   user_name varchar2(20) ,

   old_passwd varchar2(100) ,

   new_passwd varchar2(100)

);

 

修改用户profile参数,使用密码规则限制存储过程

SQL> alter profile safty_profile limit PASSWORD_VERIFY_FUNCTION verify_function;

或者新建profile

SQL> create profile safty_profile limit password_verify_function verify_function;

其余profile参数会以默认设置存在。

指定有安全需求用户的profilesafty_profile

SQL> alter user yeyj profile safty_profile;

 

尝试修改用户密码:

密码不符合强度规则时会报错,并修改不成功。

SQL> alter user yeyj identified by yeyj;

 alter user yeyj identified by yeyj

ORA-28003: 指定口令的口令验证失败

ORA-20001: Password same as or similar to user

密码符合规则则修改成功

SQL> alter user yeyj identified by yeyj_1988;

 User altered

 

SQL> select * from passwd_changed;

 USER_NAME       OLD_PASSWD                           NEW_PASSWD

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

YEYJ                                                  YEYJ_1988

 

尝试创建用户,但需注意创建语句中需指定profile

create user new identified by password profile safty_profile

同样不符合密码强度规则会报错:

SQL> create user yeyj2 identified by yeyj profile safty_profile;

 create user yeyj2 identified by yeyj

ORA-28003: 指定口令的口令验证失败

ORA-20003: Password should contain at least one digit, one character and one punctuation

1.jpg

2.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24005010/viewspace-730089/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-31

  • 博文量
    75
  • 访问量
    128775