Oracle logon trigger舉例
以一個例子來說明logon trigger的使用問題。
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中生成報錯資訊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84859/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- logon_triggerGo
- logon on database記錄登入資訊的triggerGoDatabase
- oracle resource manager (ORM)舉例OracleORM
- 使用logon trigger完成動態的session跟蹤GoSession
- ±±oracle trigger±±Oracle
- 限制使用者在某個網段Logon實現triggerGo
- oracle rollup,cube子句的應用舉例;Oracle
- Test Oracle triggerOracle
- Oracle trigger問題Oracle
- JAVA反射舉例Java反射
- 盒模型舉例模型
- 死鎖-舉例
- oracle trigger 同步資料Oracle
- 舉例說明Oracle資料庫審計的用法Oracle資料庫
- [ORACLE 11G]Failed Logon Delays特性OracleAIGo
- shell指令碼舉例指令碼
- java 正則舉例Java
- oracle10g 11g分割槽表建立舉例Oracle
- SQLLOAD應用舉例SQL
- oracle trigger語法小記(一)Oracle
- oracle trigger觸發器這servererrorOracle觸發器ServerError
- Oracle Instead of Trigger的用法Oracle
- java中的單例模式,舉例說明。Java單例模式
- 禁止oracle表的觸發器triggerOracle觸發器
- (舉例)Laravel 怎麼分表Laravel
- 設計模式應用舉例設計模式
- golang Context應用舉例GolangContext
- java 正規表示式 舉例Java
- start slave until 語法舉例
- CONSTRAINT的用法舉例AI
- 核心FAQ 舉例說明 (轉)
- Java Stream六個使用舉例Java
- 761637-Logon restrictions prevent TMSADM logonGoREST
- Java在量化投資等金融業的關鍵應用舉例 - oracleJavaOracle
- oracle rollup,cube子句的應用舉例(可以實現總計,小計)Oracle
- 前端模板引擎Handlebars理解與舉例前端
- 安卓EventBus使用方法,eventbus舉例安卓
- MySQL遠端備份策略舉例MySql