配置完sqlnet.ora怎么使它生效

如题所述

与防火墙类似的功能,Oracle 提供限制与允许特定的IP或主机名通过Oracle Net来访问数据库。这个功能由sqlnet.ora配置文件来实现。该文件通常$ORACLE_HOME/network/admin/ 目录下,与tnsnames.ora以及listener.ora位于同一路径。用法也比较简单。通过监听器的限制,实现轻量级访问限制,比在数据库内部通过触发器进行限制效率要高。

1. 实现方式

通过在sqlnet.ora文件中增加下列记录来实现

tcp.validnode_checking = yes
tcp.invited_nodes = (hostname1, hostname2,ip1,ip2)
tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)

当使用invited_nodes时,则所有没有包含在invited_nodes值中的IP或主机将无法通过Oracel Net连接到数据库。而如果使用

excluded_nodes时,除了excluded_nodes值中列出的IP和主机不可访问之外,其余的节点都可以访问数据库。通常情况下,更倾向于使

用excluded_nodes参数。

2. 注意事项

使用excluded_nodes与invited_nodes的一些特性
不支持通配符的使用(如hostname不能写为svhs0*,IP地址不能写为10.103.11.*)
excluded_nodes与invited_nodes为互斥方式,要么使用前者,要么使用后者
如果tcp.invited_nodes与tcp.excluded_nodes都存在,则tcp.invited_nodes优先
要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动
修改之后,一定要重起监听或reload才能生效,而不需要重新启动数据库
仅提供对TCP/IP协议的支持

3. 实战演习

-->使用tnsping demo92,连接正常
C:\>tnsping demo92

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 25-JUN-2011 18:55:39
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
d:\app\Robinson\Oracle_client\product\11.2.0\client_1\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.103.11.20
9)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = demo92)))
OK (0 msec)

-->查看配置文件
[oracle@test admin]$ more sqlnet.ora
# SQLNET.ORA Network Configuration File: /oracle/92/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (ONAMES, TNSNAMES, HOSTNAME)

#Added by Robinson
tcp.validnode_checking = yes
tcp.excluded_nodes = (10.103.11.17)

-->重新reload
[oracle@test admin]$ lsnrctl reload listener_demo92

LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 10:03:11

Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
The command completed successfully

-->再次tnsping时,收到TNS-12547错误
C:\>tnsping demo92

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 25-JUN-2011 19:01:21
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
d:\app\Robinson\Oracle_client\product\11.2.0\client_1\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.103.11.20
9)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = demo92)))
TNS-12547: TNS:lost contact

-->下面的演示中如果excluded_nodes与invited_nodes都存在,则invited_nodes优先,不再演示
[oracle@test admin]$ more sqlnet.ora
# SQLNET.ORA Network Configuration File: /oracle/92/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (ONAMES, TNSNAMES, HOSTNAME)

#Added by Robinson
tcp.validnode_checking = yes
tcp.excluded_nodes = (10.103.11.17)
tcp.invited_nodes = (10.103.11.17)
温馨提示:内容为网友见解,仅供参考
无其他回答

用什么命令来自动配置sqlnet.ora
通过在sqlnet.ora文件中增加下列记录来实现 tcp.validnode_checking = yes tcp.invited_nodes = (hostname1, hostname2,ip1,ip2)tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)当使用invited_nodes时,则所有没有包含在invited_nodes值中的IP或主机将无法通过Oracel Net连接到数据库。

...如何安装Oracle客户端?需要通过配置tnsnames.ora,使用P\/L sql去连 ...
3.建立C:\\oraclien\\network\\admin目录,在C:\\oraclien\\network\\admin目录下建立tnsnames.ora文件 4.在环境参数Path增加C:\\oraclien;注意, C:\\oraclien;一定要是在Path环境参数的最前面,如果不是,当应用程序连接oracle时将报找不到oci.dll的错误. 5.安装完成 错误:ORA-12705: Cannot access NLS data files or...

求助,11g中sqlnet.ora 修改权限不起作用
shutdown immediate 然后再startup

怎么正确的使用SQLNET.ALLOWED
关于sqlnet.ora参数SQLNET.ALLOWED_LOGON_VERSION以及该参数怎么影响oracle client连接oracle database,存在通常上的误解。该参数实际上指定了一个client被允许使用的AUTHENTICATION PROTOCOL (for example SHA-1),而不是该client的实际版本(version)举例:SQLNET.ALLOWED_LOGON_VERSION=10 即使该参数值暗示o...

Oracle里,sqlnet.ora是做什么用的,请将通俗一点。谢谢你。
sqlnet.ora这个文件用于配置网络连接时所使用的连接方式等,比如SQLNET.AUTHENTICATION_SERVICES= (NTS),就是说可以以windows的本地操作系统用户认证登录,此外还有none(不允许通过os系统用户登录数据库,需要提供用户名及密码),all(允许所有的登录方式),就这 ...

修改sqlnet.ora要重启吗
重启listener就可以 lsnrctl reload 与重启数据库无关。

关于ssma无法连接oracle数据库的问题。
在WEB机器上配置sqlnet.ora和tnsnames.ora这两个文件 sqlnet.ora配置如下:SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)tnsnames.ora根据你的实际情况配置,例如:orcl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 100.18.30.34)(PORT = 1521))(...

刚安装好oracle 在创建数据库时提示 ora-12638身份证明检索失败_百度...
把sqlnet.ora文件里面的SQLNET.AUTHENTICATION_SERVICES值改为NONE,或者直接删除掉这个文件,因为它默认的是有操作系统认证的功能。

sqlnet.ora是什么文件
linux\/unix平台下默认没有sqlnet.ora文件,此时是基于操作系统验证和oracle数据库身份验证的。这个文件主要是用于windows平台区分操作系统认证 和 密码认证的 补充下,这个没有没关系的,更安全的做法没有最好,如果有这个文件,并且配置了操作系统认证,如果登陆了服务器操作系统,可以直接进入数据库而且不...

Win7系统配置Oracle客户端连接失败的解决方法
1、探求原因,控制台下(CMD):1)使用 tnsping “Oracle服务器主机IP:端口”,提示可连接,判断客户端 sqlnet.ora配置文件OK;2)使用tnsping “Oracle服务器主机实例名:端口(TNSNAMES)”,提示可连接,判断tnsnames.ora配置文件OK;3)使用 sqlplus “username\/password@net_service_name” 提示 SP-...

相似回答