oracle审计sys用户,通过审计来区分创建的用户是系统自带的还是用户创建的

在ORACLE11G下默认开启了审计

SQL> show parameter audit

NAME                                 TYPE        VALUE

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

audit_file_dest                       string      D:\ORACLE\ADMIN\TEST\ADUMP

audit_sys_operations              boolean   FALSE

audit_trail                             string      DB

SQL> select user_name,proxy_name,privilege,success,failure from dba_priv_audit_opts;

USER_NAME  PROXY_NAME PRIVILEGE                                       SUCCESS    FAILURE

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

CREATE EXTERNAL JOB                      BY ACCESS  BY ACCESS

CREATE ANY JOB                              BY ACCESS  BY ACCESS

GRANT ANY OBJECT PRIVILEGE          BY ACCESS  BY ACCESS

EXEMPT ACCESS POLICY                    BY ACCESS  BY ACCESS

CREATE ANY LIBRARY                       BY ACCESS  BY ACCESS

GRANT ANY PRIVILEGE                      BY ACCESS  BY ACCESS

DROP PROFILE                             BY ACCESS  BY ACCESS

ALTER PROFILE                            BY ACCESS  BY ACCESS

DROP ANY PROCEDURE                       BY ACCESS  BY ACCESS

ALTER ANY PROCEDURE                      BY ACCESS  BY ACCESS

CREATE ANY PROCEDURE                     BY ACCESS  BY ACCESS

USER_NAME  PROXY_NAME PRIVILEGE                                SUCCESS    FAILURE

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

ALTER DATABASE                           BY ACCESS  BY ACCESS

GRANT ANY ROLE                           BY ACCESS  BY ACCESS

CREATE PUBLIC DATABASE LINK              BY ACCESS  BY ACCESS

DROP ANY TABLE                           BY ACCESS  BY ACCESS

ALTER ANY TABLE                          BY ACCESS  BY ACCESS

CREATE ANY TABLE                         BY ACCESS  BY ACCESS

DROP USER                                BY ACCESS  BY ACCESS

ALTER USER                               BY ACCESS  BY ACCESS

CREATE USER                        BY ACCESS  BY ACCESS

CREATE SESSION                           BY ACCESS  BY ACCESS

AUDIT SYSTEM                             BY ACCESS  BY ACCESS

USER_NAME  PROXY_NAME PRIVILEGE                                SUCCESS    FAILURE

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

ALTER SYSTEM                             BY ACCESS  BY ACCESS

已选择23行。

看到了会自动审计CREATE USER,想到了在ORACLE下通过DBA_USERS好像没有办法判断哪个用户是系统自带的,哪个用户是用户自己创建的,应该可以结合着审计来判断。来做个试验来看看。

C:\Documents and Settings\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 4 14:43:16 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning and Real Application Testing options

SQL> SET LINESIZE 200

SQL> select * from audit_actions where name='CREATE USER';

ACTION NAME

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

51 CREATE USER

SQL> select * from dba_audit_trail WHERE ACTION=51;

未选定行

SQL> COL USER_NAME FOR A5

SQL> COL PROXY_NAME FOR A5

SQL> select * from dba_priv_audit_opts where privilege='CREATE USER';

USER_ PROXY PRIVILEGE                                SUCCESS    FAILURE

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

CREATE USER                              BY ACCESS  BY ACCESS

SQL> CREATE USER A IDENTIFIED BY A;--创建用户看看,是否产生了审计结果

用户已创建。

SQL> create user b identified by b default tablespace users;

用户已创建。

SQL> select * from dba_audit_trail WHERE ACTION=51;--发现没有结果,刚开始觉得奇怪,后来想到连接的是SYS用户,而ORACLE现在默认对SYS用户的行为不审计,即便开启了审计,也不放在该视图里。

未选定行

SQL> grant dba to a;

授权成功。

SQL> exit

C:\Documents and Settings\Administrator>sqlplus a/a--此处验证了在11G下用户名口令严格区分大小写

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 4 15:15:51 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:

ORA-01017: 用户名/口令无效; 登录被拒绝

请输入用户名:

C:\Documents and Settings\Administrator>sqlplus A/A

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 4 15:16:04 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning and Real Application Testing options

SQL> CREATE USER c identified by c;--用A用户创建了个USER,再来看看审计结果

用户已创建。

SQL> select count(*) from dba_audit_trail WHERE ACTION=51;--已经产生了一条审计记录

COUNT(*)

----------

1

可以通过结合审计,是可以判断哪些用户是系统默认的,哪些用户是用户创建的。

不过我觉得正常在生产上一般都会用SYS用户去创建用户,不知道大家有没有什么好的方法呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值