- 浏览: 1255472 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- 心情故事 (12)
- java (115)
- linux (55)
- 关系型数据库 (35)
- struts,jsf,spring (11)
- jdbc,hibernate,ibatis (11)
- jsp,jstl,c:tag,标签库 (2)
- ejb,webservice (1)
- tomcat,jboss,jetty,weblogic,websphere (15)
- java网络编程 (6)
- java线程 (0)
- js,jquery,json,xml,dom,html.regex (25)
- 设计模式 (6)
- BUG记录 (2)
- ant (2)
- jsp,servlet (4)
- swing (6)
- lucene+nutch (6)
- log4j (2)
- windows doc (2)
- ruby (1)
- ruby on rails (3)
- 操作系统网络 (18)
- apache 错误 (1)
- tomcat (10)
- jboss (9)
- jetty (9)
- weblogic (9)
- websphere (10)
- apache (2)
- AIX的iostat命令查看系统磁盘的使用情况 (1)
- oracle 统计一个表格有多少列 (1)
- Exception in thread "main" java.security.KeyStoreException: Windows-MY not found (1)
- jsp (1)
- jstl (1)
- c:tag (1)
- 标签库 (1)
- struts (1)
- jsf (1)
- spring (2)
- oracle,sqlplus (2)
- sqlplus (2)
- show errors (1)
- proc (1)
- function (1)
- ORA-06544: PL/SQL: internal error (1)
- arguments: [55916] (1)
- [] (7)
- 终端身份实施文档 (1)
- 重装系统之后飞鸽传书只能看到自己 (1)
- vsftp "上传 553 Could not create file" (1)
- startWebLogic.sh启动失败,提示Error initializing Embedded LDAP Server (1)
- java agent 注册为 windows 服务 (1)
- centos (1)
- svn (1)
- apr (1)
- apr-util (1)
- activemq (2)
- oracle (5)
- mysql (3)
- nosql (3)
- NSIS (1)
- windows wmic (1)
- c 指针 (1)
- c c++ (0)
- jmeter (0)
- 性能测试 (0)
- linux,备份 (2)
- C++ ,Virtual (1)
- windows dos (1)
- android (2)
- 大数据,云计算 (1)
- JVM垃圾收集 (1)
- jdbc (2)
- invoke (1)
- hibernate (1)
- ibatis (1)
- 个人开源项目源码收藏 (1)
- 批处理 (1)
- Mongodb mapreduce (8)
- kettle (1)
- Mongodb capped (1)
- mongodb gridfs (1)
- Mongodb 入门基础知识 (1)
- mongodb (8)
- hadoop2.5.1 (1)
- hadoop (4)
- eclipse (1)
- hdfs fs (1)
- elipse hadoop plugin (1)
- PHP相关知识 (1)
- js (1)
- jquery (1)
- json (1)
- xml (1)
- dom (1)
- html.regex (1)
- 网络知识 (1)
- nginx (1)
- docker (1)
- 测试 (1)
- nodejs (1)
- iptables (1)
- linux gitlab (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
web页面调用window.print()函数实现打印的功能 -
hxdtech:
非常感谢!
我在学习ibatis时的培训ppt -
zmwxiaoming:
what 能连数据库不错
SOLR的学习整理 -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java获取当前操作系统的信息 -
huanzei:
整理的不错,
oracle lpad函数
1、问题提出
如下只是一个举例,自己修改一下可以完成更多的功能。想完成如下的功能:
<1>某一个Ip段的用户不能登陆
<2>针对的只是某一个或几个用户
<3>对连接所用的应用程序也进行了限定。
2、问题解决
<1>如果你的logon trigger不是建在sys用户下,v_$session的查询权限需要授权给给建trigger的用户。
我选择在system用户下建:
SQL>connect / as sysdba;
SQL>grant select on v_$session to system;
<2>logon trigger体
CREATE OR REPLACE TRIGGER QIUYB$LOGON AFTER
LOGON ON DATABASE
DECLARE
V_PROGRAM VARCHAR2(48);
V_MESSAGE VARCHAR2(1000);
V_BAD_LOGON EXCEPTION;
BEGIN
SELECT PROGRAM INTO V_PROGRAM
FROM V$SESSION
WHERE AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID')
AND rownum<2;
IF USER IN ('QIUYB','HR')
AND sys_context('USERENV','ip_address') LIKE '10.199.168.%'
AND sys_context('USERENV','ip_address') LIKE '10.199.173.%'
AND lower(v_program)<>'zhyz_report.exe'
THEN
raise V_BAD_LOGON;
END IF;
EXCEPTION
WHEN v_bad_logon THEN
v_message := 'Uh Uh Uh! - This user can not logon with this software!!';
RAISE_APPLICATION_ERROR(-20002, v_message);
WHEN OTHERS THEN
v_message := 'FATAL ERROR - QIUYB$LOGON TRIGGER- Please Contact Your DBA!!' ||
CHR(10) || SQLERRM;
RAISE_APPLICATION_ERROR(-20003, v_message);
END;
3、特别说明
logon trigger对于dba权限的用户是没效力的,只会在alter.log中生成报错信息。
发表评论
-
存储过程的授权和删除
2012-04-12 17:05 2242当建立一个存储过程或函数后,默认情况下只有创建者和DBA才 ... -
ORACLE 中的SQLPLUS 的SHOW ERRORS
2012-04-05 15:54 2672在sqlplus 中 sql> show ... -
sqlplus的spool命令
2012-04-05 15:06 1528有时候我们想把SQLPLUS的会话输出保存到文件中 ... -
sqlplus 的@符号
2012-04-05 14:16 1903通常我们把ORACLE开发的PLSQL保存成文件,比如. ... -
oracle 的exp和imp命令
2012-03-31 15:23 2086我们通常要对ORACLE的数据进行导入,导出,在没有expdb ... -
oracle的sqlnet.ora,tnsnames.ora,listener.ora的理解
2012-03-31 14:45 20861 oracle中3个比较常用的配置文件 tnsna ... -
oracle 统计一个表格有多少列
2011-12-19 16:48 3171ResultSetMetaData rsMetaData ... -
TNS-12535: TNS: 操作超时
2011-09-02 12:37 2560新安装的linux虚拟机,上面装了ORACLE10G,装好后在 ... -
oracle killsession
2011-08-31 10:09 1238一条语句结束oracle的多个会话 select 'a ... -
oracle建立database link
2011-04-24 08:33 1069建立oracle database link 的命令 实 ... -
plsql编程学习之游标一
2011-04-12 20:39 2913oralce plsql编程的游标 游标分类 1显示游 ... -
plsql的异常处理部分学习整理
2011-04-10 13:01 6011ORACLE的PLSQL编程,异常 ... -
PLSQL开发基础--结构控制
2011-04-07 19:24 1515--匿名块 set serveroutput on; be ... -
oracle10g 的sqlplus的新特性
2011-03-21 09:58 1226在使用oracle9i的sqlplus时候我们不知道当前登录的 ... -
oracle10g下的OEM的异常
2011-03-08 14:45 1477重新安装了oracle10g在笔记本上,当网络环境发生变化时容 ... -
oracle glogin.sql和login.sql
2011-03-01 16:52 3343oracle数据库安装好之后,默认在oracle_home下面 ... -
aix下面oracle用户的环境变量
2011-03-01 15:47 10246在AIX上安装oracle11g,需要oracle账号,修改. ... -
oracle 基础知识:两个number列相加
2011-01-13 10:07 135621查看表结构 SQL> desc teachers; ... -
windows7下的oracle10.2.0.1
2011-01-12 14:58 1472近日oracle网站推 ... -
oracle substr,instr用法
2011-01-07 11:36 2749Oracle中INSTR的用法: INSTR方法的格式为 ...
相关推荐
在Oracle数据库中,触发器(Trigger)是一种存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。标题“oracle trigger at a certain time”指的是创建一个定时触发器,即在特定时间点...
CREATE OR REPLACE TRIGGER LOG_LOGON AFTER LOGON ON DATABASE BEGIN INSERT INTO EVENT_LOG (login_time, username) VALUES (SYSTIMESTAMP, USER); COMMIT; END; ``` 查看登录 Oracle 数据库用户记录 最后,...
通过上述步骤,我们成功地在Oracle数据库中创建了一个触发器`logon_trigger`,用于记录用户的登录信息。这一功能不仅可以帮助管理员更好地监控系统访问情况,还能够为日后的审计工作提供必要的数据支持。在实际应用...
AFTER LOGON ON DATABASE BEGIN INSERT INTO audit_log (event_time, user_name, ip_address) VALUES (SYSDATE, USER, SYS_CONTEXT('USERENV', 'IP_ADDRESS')); END; / ``` 登出触发器类似,但通常会包含断开会话...
CREATE OR REPLACE TRIGGER logon_history AFTER LOGON ON DATABASE BEGIN INSERT INTO session_history SELECT username, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS') FROM v$session WHERE audsid...
在企业级应用环境中,Oracle数据库系统作为核心的数据存储与处理平台,其安全性尤为重要。本篇文章主要针对如何禁用Oracle数据库的操作系统认证方式以及禁止SYS用户远程登录两个方面进行详细介绍,旨在帮助读者理解...
BEFORE | AFTER STARTUP | SHUTDOWN | LOGON | LOGOFF ON DATABASE BEGIN -- 在这里编写触发器的动作 END; ``` 例如,为了记录数据库关闭的时间,可以创建以下触发器: ```sql CREATE OR REPLACE TRIGGER db_...
CREATE OR REPLACE TRIGGER DBT_LOGON AFTER LOGON ON DATABASE BEGIN HR.HR_CONTEXT_PKG.INITIALIZE_HR_CONTEXT; EXCEPTION WHEN OTHERS THEN NULL; -- 处理错误 END; / ``` 一旦设置完成,任何应用程序都能...
CREATE OR REPLACE TRIGGER logon_ip_control AFTER LOGON ON DATABASE DECLARE ip STRING(30); user STRING(30); BEGIN SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') INTO user FROM dual; SELECT SYS_...
CREATE OR REPLACE TRIGGER tr_logon AFTER LOGON ON DATABASE BEGIN DBMS_OUTPUT.PUT_LINE('User logged in'); END; / ``` #### 10.5 insteadof 触发器 `INSTEAD OF` 触发器主要用于视图上,当对视图执行插入、...
### 触发器(Trigger)概述 触发器是一种存储过程,它被定义为当特定的事件发生时自动执行。在数据库管理系统(DBMS)中,触发器被广泛应用于Oracle等关系型数据库系统中,用于实现复杂的业务逻辑或者数据完整性...
CREATE OR REPLACE TRIGGER on_logon_trigger AFTER LOGON ON DATABASE BEGIN DBMS_APPLICATION_INFO.SET_CLIENT_INFO(SYS_CONTEXT('USERENV', 'IP_ADDRESS')); END; ``` - 查询客户端的 IP 地址: ```sql ...
- `EXECUTE_TRIGGER`函数执行指定的触发器,这对于响应特定事件或操作非常有用。 5. **警告与消息处理**: - `Set_Alert_Property`和`Show_Alert`用于创建和显示警告,提供用户交互。根据用户的选择(例如点击...
- **SQL命令**:`SELECT sid, serial#, username, osuser, machine, program, status, logon_time FROM v$session WHERE status = 'INACTIVE';` - 用于检查是否有长时间未响应的进程。 - 这些进程可能会占用宝贵的...
SELECT DBMS_METADATA.GET_DDL('TRIGGER', 'trigger_name') AS ddl FROM dual; ``` #### 12. 如何计算一个表占用的空间的大小? 可以通过查询`DBA_SEGMENTS`视图来获取表的空间使用情况。例如: ```sql SELECT ...
此外,Oracle8还支持系统事件,如数据库启动(STARTUP)、关闭(SHUTDOWN)和错误消息,以及用户事件,如登录(LOGON)和登出(LOGOFF)。 系统事件的属性提供了丰富的信息,例如操作对象的名称、所有者、开始时间...
3. **系统触发器**:如`LOGON`和`ALTER SYSTEM`触发器,分别在用户登录和系统改变时触发,用于实现特定的系统行为。 触发器的编写类似于普通的PL/SQL程序,但它们在后台运行,不需要显式调用。例如,创建一个在插入...
在【例1】中,我们看到了一个替代触发器(INSTEAD OF trigger)的例子。替代触发器主要用于处理对视图的DML操作。在本例中,创建了一个名为VW_GOODSINFO的视图,它连接了SCOTT.GOODS和SCOTT.TYPES表来展示商品信息。...
Oracle的LOGON和LOGOFF事件也在此范畴内。Oracle并不推荐在业务逻辑编程中广泛使用触发器,因为其DML操作不自动提交,与SQL Server等其他数据库系统不同。通常,Oracle会建议使用存储过程来实现业务逻辑。 Oracle的...