oracle巧用觸發器提高資料庫安全級別
oracle巧用觸發器提高資料庫安全級別
導讀:資料庫的安全越來越被企業所重視。使用者直接登入資料庫又是風險級別最高的,所以對程式使用者、業務使用者限制性登入又顯得格外重要。下面直接乾貨,告訴你怎麼用觸發器限制使用者登入。
SYS@doudou2> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
1.限制程式使用者指定伺服器登入
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_CONTEXT('USERENV','IP_ADDRESS') into ip from dual;
if user='TEST'
THEN
IF ip not in ('192.168.88.61',''192.168.88.62')
THEN raise_application_error(-20018,'User '||user||' is not allowed to connect from '||ip);
END IF;
if ip is null
THEN raise_application_error(-20018,'User '||user||' is not allowed to connect from '||' Non AMC employees');
END IF;
END IF;
end;
/
--'192.168.88.61',''192.168.88.62' 這些IP地址允許登入TEST程式使用者,訪問資料庫;如果使用其他地址想登入TEST程式使用者會報錯。
2.限制業務使用者只有公司內部指定域使用者登入
create or replace trigger logon_user_control
after logon on database
declare
host STRING(30);
user STRING(30);
begin
SELECT SYS_CONTEXT('USERENV','SESSION_USER') into user from dual;
select (select substr(t.ip,-6,6) from (SELECT SYS_CONTEXT('USERENV','host') as ip from dual) t) into host from dual;
if user='DOUDOU'
THEN
IF host not in ('181396','181456')
THEN raise_application_error(-20017,'User '||user||' is not allowed to connect from '||host);
END IF;
if host is null
THEN raise_application_error(-20018,'User '||user||' is not allowed to connect from '||' Non AMC employees');
END IF;
END IF;
end;
/
--'181396','181456' 這些員工ID允許登入DOUDOU業務使用者,訪問資料庫;如果使用其他員工的ID登入DOUDOU業務使用者會報錯。
以上結果均經過本人測試,生產慎用!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26442936/viewspace-1318991/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server資料庫級別觸發器SQLServer資料庫觸發器
- Oracle觸發器觸發級別Oracle觸發器
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- 觸發器限制指定IP訪問oracle資料庫觸發器Oracle資料庫
- 資料庫開發---常用物件-觸發器資料庫物件觸發器
- 資料庫觸發器,禁止DDL操作資料庫觸發器
- SQL資料庫觸發器例項SQL資料庫觸發器
- 資料庫的觸發器的使用資料庫觸發器
- 資料庫檢視,索引,觸發器資料庫索引觸發器
- sql觸發器刪除資料庫中的級聯記錄SQL觸發器資料庫
- oracle 觸發器實現禁止在資料庫中建立dblink ---透過觸發器實現Oracle觸發器資料庫
- Oracle資料庫升級(轉發)Oracle資料庫
- 審計資料庫登陸登出觸發器資料庫觸發器
- ORACLE資料庫事務隔離級別Oracle資料庫
- Oracle觸發器Oracle觸發器
- 審計資料庫登陸失敗觸發器資料庫觸發器
- Oracle資料庫之初步接觸Oracle資料庫
- Oracle資料庫事務隔離級別概述Oracle資料庫
- Oracle 巧用外部表將大量excel資料匯入資料庫OracleExcel資料庫
- ORACLE DDL觸發器Oracle觸發器
- Oracle之觸發器Oracle觸發器
- oracle ddl 觸發器Oracle觸發器
- 通過觸發器記錄資料庫連線資訊觸發器資料庫
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- 根據業務寫觸發器(oracle觸發器片)觸發器Oracle
- 如何提高個人密碼的安全級別密碼
- Oracle 資料庫升級Oracle資料庫
- 提高資料庫安全性的辦法資料庫
- Redis 實戰篇:巧用資料型別實現億級資料統計Redis資料型別
- ORACLE表資料觸發器,僅保留一天的實時資料Oracle觸發器
- 資料庫隔離級別資料庫
- 頭歌資料庫實驗七:函式與觸發器資料庫函式觸發器
- ORACLE觸發器詳解Oracle觸發器
- Oracle登陸觸發器Oracle觸發器
- oracle 觸發器-表同步Oracle觸發器
- Oracle 登入觸發器Oracle觸發器
- oracle 觸發器 client 事件Oracle觸發器client事件
- Oracle資料庫安全資源-1Oracle資料庫