linux下sqlnet.ora默认是不创建的,如果需要修改sqlnet.ora文件的相关参数,需要创建该文件;创建后sqlnet.ora位于$ORACLE_HOME/network/admin目录。
vi sqlnet.ora
#添加如下内容
NAMES.DIRECTORY_PATH= (TNSNAMES)
SQLNET.AUTHENTICATION_SERVICES= ALL
SQLNET.AUTHENTICATION_SERVICES参数有三个可选值:
1.NONE,不进行任何设置,表示使用ORACLE默认验证模式
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL> conn u_plsql
Enter password:
Connected.
SQL> conn u_plsql@bolan
Enter password:
Connected.
2.ALL,表示不仅接受OS身份验证模式,也接受密码认证方式
SQL> conn /as sysdba
Connected.
SQL> conn u_plsql
Enter password:
Connected.
SQL> conn u_plsql@bolan
Enter password:
Connected.
注:此处在第二次测试的时候,使用conn u_plsql@bolan没有通过
SQL> conn u_plsql@bolan
Enter password:
ERROR:
ORA-12641: Authentication service failed to initialize
3.NTS,是ORACLE默认验证模式,表示只接受密码认证方式
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL> conn u_plsql
Enter password:
Connected.
SQL> conn u_plsql@bolan
Enter password:
Connected.
通过sqlnet.ora文件限制IP访问
#编辑sqlnet.ora文件
vi sqlnet.ora
#添加以下内容
#1.开启IP限制功能
tcp.validnode_checking=yes
#2.允许访问数据库的IP地址列表
tcp.invited_nodes=(192.168.14.3)
或
TCP.INVITED_NODES=(hostname | ip_address, hostname |
ip_address, ...)
如:TCP.INVITED_NODES=(sales.us.acme.com, hr.us.acme.com,
144.185.5.73)
#3.禁止访问数据库的IP地址列表
tcp.excluded_nodes=(192.168.14.1)
或
TCP.EXCLUDED_NODES=(hostname | ip_address, hostname |
ip_address, ...)
如:TCP.EXCLUDED_NODES=(finance.us.acme.com, mktg.us.acme.com,
144.25.5.25)
#重启监听
lsnrctl stop
lsnrctl start
#或
lsnrctl reload
备注:编辑sqlnet.ora文件时,步骤1必须填写,步骤2和步骤3可以只写其中任意一条命令,如果步骤2和步骤3添加同一IP地址,以步骤2为准。同时需要注意的是不能禁止数据库所在服务器的IP地址(即步骤2中必须包含数据库服务器的IP,步骤3中不能添加数据库服务器的IP)
设置客户端连接会话超时时间(单位分钟)
定期检测客户端是否还是活动的,设置为0不检测
SQLNET.EXPIRE_TIME = 10
另外还有:
客户端建立连接超时时间(单位秒,默认60)
SQLNET.INBOUND_CONNECT_TIMEOUT=10
Oracle建议在listener.ora中也进行配置
接受超时时间(单位秒)
SQLNET.RECV_TIMEOUT=3
发送超时时间(单位秒)
SQLNET.SEND_TIMEOUT=3
设置立即发送
设置等待一段时间或者数据包凑够多大才会一起发送,或者可以让数据立即发送
TCP.NODELAY=yes
设置使用专享连接还是公用链接
设置为on会在客户端连接串后加上(SERVER=dedicated)
USE_DEDICATED_SERVER=on/off
备注 dblink 长连接时 偶尔报错
ORA-02068: 以下严重错误源于 TO_XXXX.DW
ORA-03135: 连接失去联系 问题的解决 方法:设置SQLNET.EXPIRE_TIME = 10