一、基礎(chǔ)環(huán)境
??操作系統(tǒng):Windows 或 Linux
??數(shù)據(jù)庫版本:Oracle Database 11.2.0.1.0 及以上版本
二、適用場(chǎng)景
??出于數(shù)據(jù)安全考慮,有時(shí)候需要對(duì)連接 Oracle 數(shù)據(jù)庫的客戶端 IP 做一些限制,只有白名單中的IP才能訪問。不在白名單中的IP地址連接的時(shí)候提示:ORA-12537 TNS 連接已關(guān)閉。
三、操作步驟
??1、從需要允許連接的客戶端遠(yuǎn)程登錄數(shù)據(jù)庫。
??2、查詢正在連接的客戶端IPv4地址,默認(rèn)情況下,從 v$session 中不能直接獲得客戶端 IP地址,但可以在數(shù)據(jù)庫中創(chuàng)建一個(gè)追蹤客戶端 IP 地址的觸發(fā)器,以 system 用戶登錄數(shù)據(jù)庫,執(zhí)行以下代碼創(chuàng)建觸發(fā)器:
create or replace trigger on_logon_trigger after logon on database
begin
dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;
/
??3、查詢正在連接Oracle數(shù)據(jù)庫的客戶端信息
select username,program,machine,client_info
from v$session
where username is not null
group by username,program,machine,client_info
order by username,program,machine,client_info
??4、查詢結(jié)果如下:
username為數(shù)據(jù)庫用戶名,program為連接的程序,machine為客戶端主機(jī)名, client_info 為客戶端 IP 地址
username | program | machine | client_info |
---|---|---|---|
DB_DZJK | JDBC Thin Client | cspt-app | 172.3.2.159 |
DB_FXBD | JDBC Thin Client | cspt-app | 172.3.2.159 |
DB_PLATFORM | JDBC Thin Client | cspt-app | 172.3.2.159 |
DB_PLATFORM | plsqldev.exe | WORKGROUP\CSPT-APP | |
DB_SRFX | JDBC Thin Client | cspt-app | |
DB_SRYC | JDBC Thin Client | cspt-app | 172.3.2.159 |
??5、在數(shù)據(jù)庫監(jiān)聽配置文件中啟用IP檢查功能并添加IP地址清單
A、【推薦】使用圖形界面配置方式。
【開始】,【Oracle - OraDb11g_home1】,【Net Manager】,【本地】-【概要文件】-下拉選擇【一般信息】,切換到【訪問權(quán)限】標(biāo)簽,勾選【檢查TCP/IP客戶機(jī)訪問權(quán)限】,在【允許訪問的客戶機(jī)】右側(cè)填入:主機(jī)名稱或IP地址,每個(gè)一行。然后點(diǎn)擊【文件】-【保存網(wǎng)絡(luò)配置】即可。
B、修改$ORACLE_HOME/network/admin/sqlnet.ora文件
增加以下內(nèi)容(#開頭的是注釋):
# 開啟ip限制功能
tcp.validnode_checking=yes
# 允許訪問數(shù)據(jù)庫的IP地址列表,多個(gè)IP地址使用逗號(hào)分開
tcp.invited_nodes=(hostname,127.0.0.1,物理網(wǎng)卡地址,應(yīng)用服務(wù)器地址,其他)
# 禁止訪問數(shù)據(jù)庫的IP地址列表,多個(gè)IP地址使用逗號(hào)分開
# tcp.excluded_nodes=(192.168.1.111)
??然后重啟監(jiān)聽即可。
??注意事項(xiàng):
??1、第2行必需寫,任何平臺(tái)都可以,但是只適用于TCP/IP。
??2、第4行和第6行任寫一行即可,如果tcp.invited_nodes與tcp.excluded_nodes都存在,以tcp.invited_nodes為主。
??3、 需要添加服務(wù)器本機(jī)所有網(wǎng)卡配置的靜態(tài)地址,否則通過 lsnrctl 將不能啟動(dòng)或停止監(jiān)聽,因?yàn)樵撨^程監(jiān)聽程序會(huì)通過本機(jī)的IP訪問監(jiān)聽器??梢蕴砑诱麄€(gè)網(wǎng)段,比如192.168.1.* 和 192.168.1.0/24 代表 192.168.1.X 這個(gè)網(wǎng)段都可以訪問數(shù)據(jù)庫。
??4、重啟監(jiān)聽才能生效即可。文章來源:http://www.zghlxwxcb.cn/news/detail-451335.html
四、參考資料
??https://www.cnblogs.com/kangxuebin/articles/3103273.html文章來源地址http://www.zghlxwxcb.cn/news/detail-451335.html
到了這里,關(guān)于Oracle 數(shù)據(jù)庫限制IP地址連接的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!