Oracle登陆触发器

1. 在sys模式下创建一个表,用于记录客户端登录数据库服务器的详细信息

create table logon_logs
(
logon_time date,
username varchar2(30),
machine varchar2(64),
ipadr varchar2(30),
program varchar2(64),
module varchar2(64),
terminal varchar2(64)
);

2.在sys模式下创建一个触发器:

create or replace trigger logusersconnects
after logon on database
begin
insert into logon_logs values(sysdate,
user,sys_context(‘USERENV‘,‘HOST‘),
sys_context(‘USERENV‘,‘IP_ADDRESS‘),
sys_context(‘USERENV‘,‘ACTION‘),
sys_context(‘USERENV‘,‘MODULE‘),
sys_context(‘USERENV‘,‘TERMINAL‘));
commit;
end;
/

3. 一些查看session数的实例(以sys用户登录)
--查看login_history表
select * from logon_logs;

--查看当前的所有session数
select count(*) from v$session;

--查看当前的客户端计算机名为RHEL的所有session数
select count(*) from v$session where machine = ‘RHEL‘;

--查看当前的各个客户端计算机的连接数
select count(*) , machine from v$session group by machine;

时间: 2024-10-07 13:08:58

Oracle登陆触发器的相关文章

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t

Oracle的触发器

过去做项目. 都是前端后台的编码.由于数据库都让项目经理给写好的.自己对于数据库并没有多少优化,时间久了,反而把数据库的知识给淡忘了,近期的项目用到的是Oracle数据库,大家都知道.用到这个数据库.就是数据量比較大的项目了.对于优化就有必要了.因此自己下班后抽出时间复习一下,并把这个记录下来,不仅仅是分享给大家,还能以后自己再次复习.若我讲得不正确,请留言更正,本人会虚心接受并改更,这样才干进步. 1.什么是触发器 每当一个特定的数操作语句(insert,update,delete)在指定的表

ORACLE 11G 触发器调试记录Error: PLS-00201: identifier'SYS.DBMS_SYSTEM' must be declared

1,触发器内容如下 CREATE OR REPLACE TRIGGER"LOGON_DENIED_TO_ALERT" AFTER servererror ON DATABASE DECLARE message   VARCHAR2(168); ip        VARCHAR2(15); v_os_user VARCHAR2(80); v_module  VARCHAR2(50); v_action  VARCHAR2(50); v_pid     VARCHAR2(10); v_s

Windows平台下忘记Oracle登陆密码解决办法

平时我们会忘记很多的密码,比如今天我就忘记了Oracle的登陆密码. 下面分享一下解决办法. 同时按Win+R,输入:cmd 然后输入:sqlplus /nolog 输入:connect /as sysdba          --连接到sysdaba用户:假如这里出现ORA-01031,可以参考:http://chensenlin.blog.51cto.com/10559465/1759490: 最后输入:alter user sys identified by 新密码:  --注意有个":&

Oracle登陆及修改用户密码

16:20 2013/7/7 Oracle 登陆 管理员登陆 sqlplus sys/root as sysdba (密码认证)这个root是安装数据库最初你输入的口令 sqlplus     /as  sysdba (主机认证 要求系统用户就是DBA用户) 普通登陆 sqlplus scott/tiger(如果密码没有修改就是tiger)tiger是安装最后一步我们解锁的scott账户密码随便一般就用tiger 解锁改密码只有以系统管理员身份才能改 解锁 alter user scott ac

oracle中触发器的讲解

触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数.所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT.UPDATE及DELETE操作或对视图进行类似的操作.ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等.所以触发器常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,

Oracle中触发器(1)

Oracle数据库触发器是存储于数据库的命名PL/SQL语句块,当触发事件发生时他们会隐含的执行,执行触发器的活动被称为触发触发器. 特定用户在特定模式下,或者任何用户执行的ddl语句(如create或者alter),这种触发器经常被用于审计目的,并且专用于oracle DBA.可以记录各种模式修改,何时执行.以及那个用户执行的. 系统事件,如数据库启动或者关闭 用户事件,如登录或者注销.即可以定义一个触发器,在用户登录数据库时记录用户名和登录时间. 触发器相关视图: 创建触发器的通用语法: c

SQL Server基础之登陆触发器

虽然同表级(DML)触发器和库级(DDL)触发器共顶着一个帽子,但登陆触发器与二者有本质区别.无论表级还是库级,都是用来进行数据管理的,而登陆触发器是纯粹的安全工具. 登陆触发器只响应LOGON事件,在登陆数据库成功后.用户会话未实际建立前触发.登陆数据库失败,如账号密码错误,不会激发登陆触发器.登陆触发器内部的错误消息及PRINT等SQL语句输出信息,统一写到SQL Server 错误日志.登陆触发器可以同时存在多个,但存在多个时,SQL Server不保证所有触发器的执行顺序,只能使用sp_

oracle 中触发器增加存储过程commit问题

触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了 当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务 正常情况下,Oracle规定在触发器中不能运行 ddl语句和commit,rollback语句. 解决办法有两种: 1.在可以在触发器中加入:pragma autonomous_transaction; 表示自由事务处理.如: create or replace trigger UPDA