`
ZYzhongyang
  • 浏览: 6417 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

oracle如何记录用户的登陆信息

阅读更多

可以做一个触发器  
  用以下的方式可以监控登入登出的用戶:
创建一张记录登录TABLE,如下:
CREATE TABLE SYSTEM.LOGIN_LOG
(
    SESSION_ID                     NUMBER(8,0) NOT NULL,
    LOGIN_ON_TIME                  DATE,
    LOGIN_OFF_TIME                 DATE,
    USER_IN_DB                     VARCHAR2(50),
    MACHINE                        VARCHAR2(50),
    IP_ADDRESS                     VARCHAR2(20),
    RUN_PROGRAM                    VARCHAR2(50)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE SYSTEM
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
/
COMMENT ON TABLE SYSTEM.LOGIN_LOG IS '登录日志'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.SESSION_ID IS 'sessionid'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.LOGIN_ON_TIME IS '登录时间'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.LOGIN_OFF_TIME IS '登出时间'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.USER_IN_DB IS '登录的DB User'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.MACHINE IS '机器名'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.IP_ADDRESS IS 'IP地址'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.RUN_PROGRAM IS '接入程序'
/
再创建两个TRIGGER,如下:
--记录登录信息触发器
CREATE OR REPLACE TRIGGER SYS.LOGIN_ON_INFO
AFTER LOGON
ON DATABASE
BEGIN
    INSERT INTO SYSTEM.LOGIN_LOG(session_id,login_on_time,login_off_time,user_in_db,machine,ip_address,run_program)
        SELECT AUDSID,sysdate,null,sys.login_user,machine,SYS_CONTEXT('USERENV','IP_ADDRESS'),program
        FROM v$session WHERE AUDSID=USERENV('SESSIONID');
END;
/
--记录登出信息触发器
CREATE OR REPLACE TRIGGER SYS.LOGIN_OFF_INFO
BEFORE LOGOFF
ON DATABASE
Begin
    update system.login_log set login_off_time=sysdate where session_id=USERENV('SESSIONID');
    exception when others then
        null;
END;
OK,另外可以在下面的文件里设置对ORACLE的访问进行限制:  
    9i:   $ORACLE_HOME/network/admin/sqlnet.ora  
    8i:   $ORACLE_HOME/network/admin/protocol.ora  
  加入:  
  tcp.validate_checking=yes     ---启动检查  
  tcp.invited_nodes=(IP1,IP2,….)   ---允许访问  
  tcp.excluded_nodes=(IP1,IP2,…..)---   拒绝访问


#################################################################
方法二:
用如下的方式可以審計執行drop動作的事件:
/**
* drop語句的審計日誌表
*/
create table drop_log
{
session_id int not null, -- sessionid
drop_time date, -- drop的時間
ip_address varchar2(20), -- ip地址
object_owner varchar2(30), -- 對象的擁有者
object_name varchar2(30), -- 對象名稱
object_type varchar2(20), -- 對象類型
drop_by_user varchar2(30) -- 執行drop語句的用戶
);
create or replace trigger drop_info
after drop on mfg0513user.schema -- 在mfg0513user用戶上創建審計drop的觸發器
begin
insert into drop_log
(session_id,
drop_time,
ip_address,
object_owner,
object_name,
object_type,
drop_by_user)
values(USERENV('SESSIONID'),
sysdate,
SYS_CONTEXT('USERENV','IP_ADDRESS'),
sys.dictionary_obj_owner,
sys.dictionary_obj_name,
sys.dictionary_obj_type,
sys.login_user);
end; 

分享到:
评论

相关推荐

    oracle中记录用户登录信息的触发器的例子

    oracle中记录用户登录信息的触发器的例子,有具体操作过程,包括错误信息及解释,这个例子是自己为某企业的oracle安全管理的具体例子

    查看登录oracle数据库用户记录.docx

    查找访问orcale数据库用户名称或IP地址

    oracle安全审计之登录登出、ddl操作记录触发器

    oracle的登录、登出触发器(时间、来访ip、用户信息、sid等等),ddl操作记录触发器(含create、drop、alter、truncate等),都属于事后触发,不影响业务操作

    查询表空间占用、记录条数、表归属用户信息,并举例截除过期数据释放表空间,Oracle适用

    1、当前登录用户,所有表占用表空间情况,提供合计 和 明细查询,显示为M; 2、查看某个用户所有表各自占用表空间的大小,并显示各表数据的条数;——常用于清表前,确认选最多记录的先清; 3、全数据库查询所有表...

    Oracle客户端连接Oracle服务器.docx

    两类数据字典表 dba一般是system用户 查表的信息从数据字典里查如:select table_name from user_tables; dual是名义表,不存任何东西. Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle客户端连接...

    Oracle 主要配置文件介绍

    INTERVAL=60 5 存储追踪和告警文件的路径 user_dump_dest 指定记录 Oracle 用户进程产生的追踪和告警信息的文件的 存放路径 background_dump_dest 指定记录 Oracle 后台进程产生的追踪和 告警信息的...

    Oracle11g从入门到精通2

    14.4.1 用户登录模块 14.4.2 添加留言模块 14.4.3 回复留言模块 14.4.4 访问留言人主页 14.4.5 删除留言 14.4.6 修改密码 14.5 本章小结 第15章 新闻发布系统 15.1 系统概述 15.1.1 新闻发布系统...

    oracle数据库管理系统v3.5

    可以把DMP文件导入到ORACLE数据库中,可以把DMP文件打包上传到FTP服务器指定位置,可以把FTP服务器上指定位置的DMP文件下载到本机指定目录,可以查询ORACLE数据库表记录信息,而且可以修改数据; 3、运行环境、...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    注意:当用特权用户登录时,必须带上sysdba或sysoper 例子: 普通用户登录 sys用户登录 操作系统的身份登录 2. 连接命令(conn) 说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as...

    oracle实验报告

    4、 以bs123456(bs学号)用户登录orcl数据库,利用PL/SQL编写程序实现下列功能模块。 1)、创建一个函数,以客户号微参数,返回该客户订购图书的价格总额。 2)、创建一个函数,以订单号为参数,返回该订单购图书的...

    Oracle11g从入门到精通

    14.4.1 用户登录模块 14.4.2 添加留言模块 14.4.3 回复留言模块 14.4.4 访问留言人主页 14.4.5 删除留言 14.4.6 修改密码 14.5 本章小结 第15章 新闻发布系统 15.1 系统概述 15.1.1 新闻发布系统的应用...

    ORACLE9i_优化设计与系统调整

    §6.3.4 记录和自动测试 90 §6.3.5 避免常见错误 90 第二部分 ORACLE应用系统设计优化 91 第8章ORACLE数据库系统优化安装 91 §7.1 应用系统环境规划和Oracle系统安装考虑 91 §7.1.1 操作系统安装考虑 91 §7.1.2 ...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    11.4.2补充日志及日志记录规则 11.4.3验证主数据库唯一标识 11.4.4创建逻辑Standby数据库 11.4.5管理日志应用服务 11.5快照Standby数据库 11.5.1快照Standby数据库的特点 11.5.2将物理Standby数据库转换为快照...

    基于Java swing带GUI界面的图书借阅管理系统(源码+数据库).zip

    oracle数据库图书借阅管理系统。用户前台模块部分: 1.注册信息 2.用户登陆 3.查看所有图书信息 4.查看热门图书信息 5.查看可借图书信息 6.查看已借图书信息 7.查看本人所有借书记录 8.查看本人未归还图书记录 9....

    oracle版火车票销售系统-java-内附源码

    3 退票员和销售员登录时分别查询对应表的记录,因此需要在管理员模块里增加相应记录后才能登录 4 此系统暂时已知还有多个缺陷,如如退票是可一张票可退多次,一个订票id可买多张车票。由于时间因素,就不在修补了...

    ORACLE10G 审计操作

    审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin /$ORACLE_SID/adump/) 或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit...

    Oracle.11g.从入门到精通 (2/2)

    14.4.1 用户登录模块 14.4.2 添加留言模块 14.4.3 回复留言模块 14.4.4 访问留言人主页 14.4.5 删除留言 14.4.6 修改密码 14.5 本章小结 第15章 新闻发布系统 15.1 系统概述 15.1.1 新闻发布系统的应用背景 15.1.2 ...

    Oracle.11g.从入门到精通 (1/2)

    14.4.1 用户登录模块 14.4.2 添加留言模块 14.4.3 回复留言模块 14.4.4 访问留言人主页 14.4.5 删除留言 14.4.6 修改密码 14.5 本章小结 第15章 新闻发布系统 15.1 系统概述 15.1.1 新闻发布系统的应用背景 15.1.2 ...

    Oracle8i_9i数据库基础

    §1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前缓冲区的命令 36 §1.6 常用数据字典简介 37 §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §...

Global site tag (gtag.js) - Google Analytics