首页 > 数据库 > Oracle > 正文

Oracle中监控sysdba角色用户登陆情况

2024-08-29 13:31:51
字体:
来源:转载
供稿:网友

在oracle 8i版本之前,使用internal用户来执行数据库的启动和关闭以及create database等操作;从8i版本以后,oracle已经逐渐淘汰了internal用户,采用授与sysdba或者sysoper角色的用户才可以执行数据库的启动和关闭等操作,为保持用户习惯在8i中依旧保留了internal用户和svrmgrl,但已完全可以不使用svrmgrl工具和internal用户了。最新发布的oracle 9i已经完全淘汰了svrmgrl工具和internal用户。由于具有角色sysdba的用户权限很大,可以执行数据库的启动和关闭等操作,所以要对具有这些角色的用户进行监控

在unix平台的oracle数据库产品中,每次当用户以sysdba权限登陆数据库时,系统就自动创建一个名为ora_.aud的文件,该文件默认在$oracle_home/rdbms/audit目录下。该文件的自动创建根本不需要系统打开审计功能。在这个文件中记录了连接的用户,终端机器的名称以及登陆时间等信息。根据这些信息,我们可以很容易地监控到是何人在何时以sysdba权限登陆数据库。下面是一个例子:

1. 首先在客户端sqlplus中以sysdba连接数据库服务器:

sql> conn [email protected] as sysdba

请输入口令:********

已连接。

2. 查看服务器端$oracle_home/rdbms/audit目录下最新的ora_.aud文件内容:

nbtax1> cat ora_589980.aud audit file /ora1/oracle/app/product/8.1.6/rdbms/audit/ora_589980.aud oracle8i enterprise edition release 8.1.6.3.0 - production with the partitioning and parallel server options jserver release 8.1.6.3.0 - production oracle_home = /ora1/oracle/app/product/8.1.6 system name: osf1 -- 系统名称 node name: nbtax1 -- 节点名称 release: v5.1 -- 操作系统版本号 version: 732 machine: alpha -- 服务器名称 instance name: nbgs1 -- 实例名称 redo thread mounted by this instance: 1 oracle process number: 247 -- oracle 进程号 unix process pid: 589980, image: [email protected] (tns v1-v3) fri sep 21 10:26:57 2001 -- 登陆时间 action : 'connect internal' ospriv : dba -- 执行何种操作 client user: administrator -- 客户端用户名称 client terminal: xiaofeishi -- 客户端终端名称

从上面文件中的内容我们可以看到,该文件详细记录了登陆时间,执行的操作,客户端用户的名称,以及登陆服务器终端机器的名称。根据这些信息我们就很容易确定何人何时以sysdba权限登陆过数据库服务器。注意ora_589980.aud文件中的汉字解释均为作者所加,不是系统自动生成。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表