各位新朋友~记得先点蓝字关注我哦~
歪?有人吗?认真学习的小张又回来给你们分享简单实用的oracle小知识辣!



首先正常的外部应用,或者说PLSQL来访问我们的数据库,我们在监听日志里可以观察到如上图所示的日志信息。
但是如果对在$ORACLE_HOME/network/admin路径下的sqlnet.ora文件作了如下限制:
开启ip限制功能
tcp.validnode_checking=yes
允许访问数据库的IP地址列表,多个IP地址使用逗号分开
tcp.invited_nodes=(192.168.1.110)
禁止访问数据库的IP地址列表,多个IP地址使用逗号分开
tcp.excluded_nodes=(172.17.15.90,172.17.15.76,192.168.116.102)
一般来说,我们采用第一个和第三个即可,在做出修改之后,我们将监听重启一下,在尝试用plsql去连接访问时,监听日志信息有如下输出:

他会提示你没权限去访问该数据库,而plsql也会提示你:与TNS丢失连接。

小张是采用的创建触发器来实现的,创建语句如下所示:
CREATE OR REPLACE TRIGGER DISABLELOGINAFTER LOGON ON KINGDEE.SCHEMABEGINIF ORA_CLIENT_IP_ADDRESS IN ('172.17.15.90','172.17.15.76','192.168.116.102') THENRAISE_APPLICATION_ERROR(-20001,'USER '||ORA_LOGIN_USER||' IS NOT ALLOWED TO CONNECT FROM '||ORA_CLIENT_IP_ADDRESS);END IF;END;/
如果是想要某个网段的话,那就可以把ORA_CLIENT_IP_ADDRESS IN替换为ORA_CLIENT_IP_ADDRESS LIKE('10.10.10.%')即可。
查询创建的触发器语句为:
SELECT TABLE_OWNER,BASE_OBJECT_TYPE,TRIGGERING_EVENT FROM DBA_TRIGGERS WHERE trigger_name='DISABLELOGIN';
好啦,今天的分享到此为止,下次再见,爱你们!

美创是国内领先的数据库服务提供商。服务团队拥有PG ACED 1名、Oracle&PG ACE 3人、DSI智库专家5名、DSMM测评师7名、OCM 20余人、数十名Oracle OCP、MySQL OCP、TDSQL TCP、OceanBase OBCP、TiDB PTCP、达梦 DCP、人大金仓、红帽RHCA、中间件weblogic、tuxedo、CISP-DSG、CISSP、CDGA、CDPSE、CZTP、CDSP等认证人员,著有《DBA攻坚指南:左手Oracle,右手MySQL》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》,《Oracle DBA实战攻略》等多本数据库书籍。运维各类数据库合计5000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、MongoDB、Redis、TDSQL、OceanBase、达梦、人大金仓等主流商业和开源数据库。美创拥有完善的运维体系和人员培养体系,并同时提供超融合、私有云整体服务解决方案、数据安全咨询及运营服务方案等,已为金融、政府、企业、能源等多个行业的客户提供量身定制的各类服务,赢得了客户的高度赞誉和广泛认可。






