觸發(fā)器限制指定IP訪問oracle數(shù)據(jù)庫
---------------------來自德哥的BLOG,覺著很有用,記錄一下-------------------
最近有個項目需要限制某些數(shù)據(jù)庫用戶的訪問來源IP,在PG中比較好實現(xiàn),但是ORACLE沒有比較簡便的操作。
如果不管用戶的話,僅僅限制來源IP對監(jiān)聽的訪問是比較容易實現(xiàn)的,通過配置數(shù)據(jù)庫服務(wù)器的sqlnet.ora文件或者修改數(shù)據(jù)庫服務(wù)器的IPTABLES等手段實現(xiàn)。
sqlnet.ora范例:
tcp.validnode_checking=yes
tcp.invited_nodes=(172.16.33.11,172.16.34.89)
iptables范例:
[root@kefu ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
# 允許訪問1521的服務(wù)器
-A RH-Firewall-1-INPUT -s 172.16.3.68/32 -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
下面來看看如何限制特定用戶和特定IP:
1. 創(chuàng)建ACL表 (本例將ACL表建立在dsm用戶下,隨便建哪里都可以)
create table dsm.tbl_iplimit (logonuser varchar2(32),ip_address varchar2(15),remark varchar2(64),create_time date default sysdate);
insert into dsm.tbl_iplimit values ('DSM','172.16.18.81','digoal''s host.',sysdate);
insert into dsm.tbl_iplimit values ('DSM','local','本地',sysdate);
commit;
這里限制了DSM用戶只能從172.16.18.81和ORACLE所在服務(wù)器登錄.其他用戶不受限制.
2. 創(chuàng)建觸發(fā)器
conn / as sysdba
create or replace trigger "logon_audit" after
logon on database
declare
record_num number;
userip varchar2(15);
isforbidden boolean:=true;
begin
userip:=nvl(sys_context ('userenv','ip_address'),'local');
select count(*) into record_num from dsm.tbl_iplimit where logonuser=user;
if (record_num>0) then
select count(*) into record_num from dsm.tbl_iplimit where logonuser=user and ip_address=userip;
if (record_num=0) then
raise_application_error(-20003,'ip :'||userip||' is forbided');
end if;
end if;
exception
when value_error then
sys.dbms_output.put_line('exception handed');
when others then
raise;
end logon_audit;
/
新聞標(biāo)題:觸發(fā)器限制指定IP訪問oracle數(shù)據(jù)庫
標(biāo)題來源:http://chinadenli.net/article46/pijphg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、移動網(wǎng)站建設(shè)、、響應(yīng)式網(wǎng)站、定制網(wǎng)站、云服務(wù)器
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)