我们在数据库上启动Oracle AUDIT和Onlogon程序审核。 我们感到困惑,SysDBA可以连接到系统。是SysDBA Oracle用户? 在SQL * Plus中有一个用于此操作的命令吗?
我们的On Logon PL / SQL代码
CREATE OR REPLACE TRIGGER logon_audit_trigger AFTER LOGON ON DATABASE
...
insert into logon_log
(user_id ,
session_id ,
sid ,
serial# ,
host ,
ip_address ,
last_action ,
last_module ,
logon_day ,
logon_time ,
logoff_day ,
logoff_time ,
elapsed_minutes,
elapsed_seconds)
values(
user,
sys_context('USERENV','SESSIONID'),
sys_context('USERENV','SID'),
dbms_debug_jdwp.current_session_serial,
sys_context('USERENV','HOST'),
sys_context('USERENV','IP_ADDRESS'),
action_name,
module_name,
lo_dt,
to_char(lo_dt, 'hh24:mi:ss'),
null,
null,
null,
null
);
选择*来自logon_log
USER_ID SESSION_ID SID SERIAL# HOST IP_ADDRESS LAST_MODULE LOGON_DAY
JOHN 393900 282 1186 ERO\APPS 192.168.1.103 frmweb.exe 1/31/2013 9:27:49 AM
JOHN 393903 189 1005 ERO\SECC 192.168.1.110 SQL*Plus 1/31/2013 9:28:12 AM
JOHN 393929 167 288 ERO\SECC 192.168.1.110 plsqldev.exe 1/31/2013 9:38:37 AM
JOHN 393930 198 858 ERO\SECC 192.168.1.110 plsqldev.exe 1/31/2013 9:38:37 AM
JOHN 393983 179 6066 ERO\SECC 192.168.1.110 frmbld.exe 1/31/2013 9:58:21 AM
JOHN 393987 182 231 ERO\SECC 192.168.1.110 frmbld.exe 1/31/2013 9:59:17 AM
JOHN 393941 278 1429 ERO\SECC 192.168.1.110 plsqldev.exe 1/31/2013 9:42:26 AM
JOHN 394060 305 1337 ERO\SECC 192.168.1.110 plsqldev.exe 1/31/2013 10:36:34 AM
JOHN 394129 261 5236 ERO\SECC 192.168.1.110 plsqldev.exe 1/31/2013 11:16:40 AM
JOHN 394196 269 783 ERO\SECC 192.168.1.110 SQL*Plus 1/31/2013 11:58:20 AM
JOHN 394199 309 701 ERO\APPS 192.168.1.103 frmweb.exe 1/31/2013 12:00:04 PM
JOHN 394240 196 578 ERO\SECC 192.168.1.110 SQL*Plus 1/31/2013 12:28:53 PM
JPHN 394243 248 702 ERO\SECC 192.168.1.110 frmbld.exe 1/31/2013 12:30:56 PM
SysDBA 394249 196 580 ERO\SECC 192.168.1.110 1/31/2013 12:31:56 PM
JOHN 394252 248 704 ERO\SECC 192.168.1.110 frmbld.exe 1/31/2013 12:32:57 PM
JOHN 394259 248 706 ERO\SECC 192.168.1.110 frmbld.exe 1/31/2013 12:35:29 PM
JOHN 394263 196 587 ERO\SECC 192.168.1.110 SQL*Plus 1/31/2013 12:36:49 PM
SysDBA 394264 196 589 ERO\SECC 192.168.1.110 1/31/2013 12:37:07 PM
为什么UserID是SysDBA?
其他数据:
Select * From DBA_USER
USERNAME SysDBA
USER_ID 390
PASSWORD BD40E271960C5535
ACCOUNT_STATUS OPEN
LOCK_DATE
EXPIRY_DATE
DEFAULT_TABLESPACE USERS
TEMPORARY_TABLESPACE TEMP
CREATED 8/1/2012 10:28:51 AM
PROFILE DEFAULT
INITIAL_RSRC_CONSUMER_GROUP DEFAULT_CONSUMER_GROUP
EXTERNAL_NAME
答案 0 :(得分:1)
你没有看到你的想法。你问'是SysDBA Oracle用户吗?',答案就是'不'。 SYSDBA
is a system privilege,而不是predefined user account provided by Oracle。被授予该权限的用户可以使用管理权限进行连接,例如:
connect / as sysdba
这与SysDBA
用户可以连接的方式完全不同:
connect "SysDBA"/sysdba
组织中的某个人已在您的数据库中创建了用户;它不是默认的Oracle帐户,它们完全不相关,但我想可以想象它也可以被授予SYSDBA
权限,只是为了真正搞砸你。 (是的,这真的是我害怕的密码)。
另请注意,它是使用混合大小写创建的,这意味着在查询外部使用时需要引用它。你可以这样做:
select * from dba_users where username = 'SysDBA';
...但如果您没有引用表格列值,则必须引用它,如上面的connect
和alter user
之类的内容所示:
alter user "SysDBA" account lock;
看起来它可能是应用程序的内部帐户,而不是通过dbms_application_info
调用设置模块(v$session.program
?) - 因此可能是内部应用程序。如果是这样,你可能会发现它为什么存在以及它在做什么,为什么它被赋予一个令人困惑的名称,但锁定它可能会导致运行该应用程序的任何人出现问题。