sqlnet参数

本文深入探讨了SQLNET参数的设置与应用,包括日志参数、默认域名、命名方法、客户端版本验证、加密设置、认证时间限制、访问权限、tnsping跟踪、trace参数配置、dedicated连接方式、服务器响应超时、以及IP限制等关键点。

sqlnet参数

1.设置日志参数
#设置客户端和服务器端的log文件的目录
LOG_DIRECTORY_CLIENT
LOG_DIRECTORY_SERVER
#设置客户端和服务器端的log文件的名称
LOG_FILE_CLIENT
LOG_FILE_SERVER

2.设置默认的domain,会在连接中自动追加domain
NAMES.DEFAULT_DOMAIN
如设置NAMES.DEFAULT_DOMAIN=us.acme.com,使用conn scott/tiger@test连接数据库时会自动追加domain,变成conn scott/tiger@test.us.acme.com,而直接使用conn scott/tiger@test.us.acme.com连接数据库则不会追加

3.设置客户端的命名方法和优先级(最常用的参数),可选值有tnsnames,onames,hostname,ldap等
NAMES.DIRECTORY_PATH

4.设置允许连入数据库的客户端版本,可选值10,9,8,7
SQLNET_ALLOWED_LOGON_VERSIONS

5.设置使用何种验证方式,可选值
none(使用用户名/密码的方式连接数据库)
all(使用所有方式的验证,包括OS验证)
nts(OS验证方式,连入OS后可以不用密码连接数据库)
SQLNET.AUTHENTICATION_SERVICES

6.设置客户端和服务器是否使用加密,可选值
accepted(如果对方设置为requested或required,则使用加密服务)
rejected(不使用加密服务,即使对方设置为requested也不使用)
requested(如果对方使用加密服务,则使用加密服务)
required(使用加密服务,如果对方没有使用则无法连接)
SQLNET.ENCRYPTION_CLIENT
SQLNET.ENCRYPTION_SERVER
#设置使用的加密算法
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER

7.设置连入数据库后必须在多长时间内完成认证(如:输入用户名/密码),超过此时间没有完成的话,数据库会断开此连接,并将客户端的IP地址和ORA-12170: TNS:Connect timeout occurred错误信息记录到sqlnet.log,而且客户端会收到ORA-12547: TNS:lost contact或ORA-12637: Packet receive failed错误信息。这个设置主要是为了防止denial-of-service攻击
SQLNET.INBOUND_CONNECT_TIMEOUT
可以防止3136 错误
8.设置在指定的时间间隔内必须有数据接收/发送,为了防止长时间的等待
SQLNET.RECV_TIMEOUT
SQLNET.SEND_TIMEOUT
可以防止 12170错误
9.限制访问数据库的客户端IP:
#允许访问的IP
TCP.INVITED_NODES=(192.168.1.103)
#不允许访问的IP
TCP.EXCLUDED_NODES=(192.168.1.102)
#检测上述参数的设置
TCP.VALIDNODE_CHECKING=yes

当不允许访问的客户端连入时,会出现下列错误
sys/oracle@approd.test as sysdba
ERROR:
ORA-12537: TNS:connection closed

Warning: You are no longer connected to ORACLE.

10.对tnsping命令进行跟踪,文件名是tnsping.trc
#trace文件的目录,默认在$ORACLE_HOME/network/trace下
TNSPING.TRACE_DIRECTORY
#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TNSPING.TRACE_LEVEL

11.设置trace参数
#设置客户端和服务器端的trace文件的目录
TRACE_DIRECTORY_CLIENT
TRACE_DIRECTORY_SERVER
#设置客户端和服务器端的trace文件的名称
TRACE_FILE_CLIENT
TRACE_FILE_SERVER
#设置客户端和服务器端的trace文件的最大大小,超过后trace信息会写入新的文件
TRACE_FILELEN_CLIENT
TRACE_FILELEN_SERVER
#设置客户端和服务器端的trace文件的最多个数,trace文件是循环写的
TRACE_FILENO_CLIENT
TRACE_FILENO_SERVER
#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TRACE_LEVEL_CLIENT
TRACE_LEVEL_SERVER
#是否在trace中写入每条trace信息的dd-mon-yyyy hh:mi:ss:mi时间戳
TRACE_TIMESTAMP_CLIENT
TRACE_TIMESTAMP_SERVER
#trace是否只写入独立的文件:设为off后,每个新的客户端会话的trace信息都会覆盖已有信息;设为on后,每个新的客户端会话的trace信息都会写入单独的文件
TRACE_UNIQUE_CLIENT

12.强制使用dedicated方式连接数据库
#当设置为on时,会在连接描述中自动添加(SERVER=dedicated),如果已经设置了(SERVER=shared)也会被覆盖,默认为off
USE_DEDICATED_SERVER

idle>conn sys/oracle@test1 as sysdba
Connected.

sys@TEST>select server from v$session where username=’SYS’;

SERVER
———
SHARED

在sqlnet.ora中设置了USE_DEDICATED_SERVER=on

sys@TEST>select server from v$session where username=’SYS’;

SERVER
———
DEDICATED

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/611609/viewspace-696133/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/611609/viewspace-696133/

在Oracle数据库环境中,SQL*Net是用于实现客户端与服务器之间通信的关键组件。如果SQL*Net未正确安装或配置,可能会导致连接问题,影响数据库的正常使用。以下是解决SQL*Net未正确安装问题的步骤和注意事项。 ### 1. 检查SQL*Net配置文件 SQL*Net的配置文件通常位于`$ORACLE_HOME/network/admin/`目录下,主要包括`sqlnet.ora`、`listener.ora`和`tnsnames.ora`三个文件。其中,`sqlnet.ora`用于定义SQL*Net的全局参数。 - **检查文件是否存在**:如果`sqlnet.ora`文件不存在,可以根据`$ORACLE_HOME/network/admin/samples/sqlnet.ora`模板文件创建一个新的`sqlnet.ora`文件,并将其放置在`$ORACLE_HOME/network/admin/`目录下。 - **检查文件内容**:确保`sqlnet.ora`文件中的配置项符合当前环境的需求,例如`SQLNET.AUTHENTICATION_SERVICES`参数的设置是否正确。如果不需要使用操作系统认证,可以将其设置为`(none)`。 ### 2. 安装必要的依赖包 在安装Oracle数据库之前,确保系统中已安装所有必要的依赖包。对于Oracle 11g R2版本,常见的依赖包包括`binutils`、`gcc`、`libstdc++`、`libaio`、`glibc`等。可以通过以下命令检查并安装缺失的依赖包: ```bash yum install -y binutils gcc libstdc++ libaio glibc ``` 如果在安装过程中遇到依赖问题,可以尝试使用`yum`的`--skip-broken`选项来跳过无法安装的包,或者手动下载并安装对应的RPM包。 ### 3. 重新运行NetCA工具 如果SQL*Net的配置文件已经存在但仍然存在问题,可以尝试使用Oracle提供的NetCA(Network Configuration Assistant)工具重新配置SQL*Net。NetCA是一个图形化工具,可以帮助用户轻松地配置监听器和网络服务名。 - **启动NetCA**:可以在命令行中输入`netca`命令来启动NetCA工具。 - **选择配置类型**:根据需要选择“配置监听器”或“配置网络服务名”等选项。 - **按照提示完成配置**:根据向导的提示逐步完成配置过程,确保所有参数都正确无误。 ### 4. 检查监听器状态 监听器是SQL*Net的重要组成部分,负责接收来自客户端的连接请求。可以通过以下命令检查监听器的状态: ```bash lsnrctl status ``` 如果监听器未运行,可以使用以下命令启动监听器: ```bash lsnrctl start ``` 如果监听器启动失败,可以查看监听器的日志文件(通常位于`$ORACLE_HOME/network/log/listener.log`)以获取更多错误信息,并根据日志内容进行故障排查。 ### 5. 验证SQL*Net连接 在完成上述步骤后,可以通过以下命令验证SQL*Net连接是否正常: ```bash tnsping <service_name> ``` 其中,`<service_name>`是要连接的数据库服务名。如果`tnsping`命令能够成功解析服务名并返回响应时间,则表示SQL*Net连接正常。 ### 6. 忽略非关键警告 在安装Oracle数据库的过程中,如果预安装依赖检查阶段出现了一些非关键性的警告信息,可以根据实际情况决定是否忽略这些警告。例如,如果某些包的版本较新但仍然满足Oracle的要求,可以选择忽略这些警告并继续安装。不过,在忽略警告之前,建议仔细阅读警告信息,确保不会对后续的安装和配置造成影响。 ### 示例代码:创建`sqlnet.ora`文件 ```bash # 创建sqlnet.ora文件 cp $ORACLE_HOME/network/admin/samples/sqlnet.ora $ORACLE_HOME/network/admin/sqlnet.ora # 编辑sqlnet.ora文件,设置SQLNET.AUTHENTICATION_SERVICES参数 echo "SQLNET.AUTHENTICATION_SERVICES = (none)" >> $ORACLE_HOME/network/admin/sqlnet.ora ``` ### 示例代码:启动监听器 ```bash # 启动监听器 lsnrctl start # 检查监听器状态 lsnrctl status ``` ### 示例代码:验证SQL*Net连接 ```bash # 使用tnsping验证SQL*Net连接 tnsping orcl ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值