oracle网络设置主要包括三个文件,sqlnet.ora\ lisnter.ora\ tnsnames.ora
可以通过netmgr配置lisnter.ora 和 tnsnames.ora
lisnter.ora 为oracle服务器使用的监听器配置文件,监听器可以通过 lsnrctl 程序进行设置
tnsnames.ora 为客户端配置文件,为连接服务器的参数信息
sqlnet.ora 为服务端sql*net 网络配置文件 主要有以下参数
1.names.default_domain = localdomain ;
//可以通过 show parameter domain 查看, 一般将该参数注释掉;如果设置了该参数
//通过netmgr设置本地服务名时系统会在本地服务名后面自动追加该参数
//sql*plus 访问时如果该参数存在,则会在服务名追加该参数,然后利用追加后的服务名,在tns中查找
//造成 tnsping 可以 但是使用 sqlplus 不可以的现象
2.names.directory_path = (tnsnames,onames,hostname)
// 服务端的解析路径 1.tnsname; 2.oname; 3.hostname
3.设置日志参数
#设置客户端和服务器端的log文件的目录
LOG_DIRECTORY_CLIENT
LOG_DIRECTORY_SERVER
#设置客户端和服务器端的log文件的名称
LOG_FILE_CLIENT
LOG_FILE_SERVER
4.设置默认的domain,会在连接中自动追加domain
NAMES.DEFAULT_DOMAIN
如设置NAMES.DEFAULT_DOMAIN=us.acme.com,
使用conn连接时会自动追 加domain,变成conn ,而直接使用conn连接数据库则不会追加
5.设置客户端的命名方法和优先级(最常用的参数),
可选值有tnsnames,onames,hostname,ldap等
NAMES.DIRECTORY_PATH
6.设置允许连入数据库的客户端版本,可选值10,9,8,7
SQLNET_ALLOWED_LOGON_VERSIONS
7.设置使用何种验证方式
SQLNET.AUTHENTICATION_SERVICES
可选值
none(使用用户名/密码的方式连接数据库)
all(使用所有方式的验证,包括OS验证)
nts(OS验证方式,连入OS后可以不用密码连接数据库)
8.设置客户端和服务器是否使用加密,可选值
accepted(如果对方设置为requested或required,则使用加密服务)
rejected(不使用加密服务,即使对方设置为requested也不使用)
requested(如果对方使用加密服务,则使用加密服务)
required(使用加密服务,如果对方没有使用则无法连接)
SQLNET.ENCRYPTION_CLIENT
SQLNET.ENCRYPTION_SERVER
9#设置使用的加密算法
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER
10.设置连入数据库后必须在多长时间内完成认证(如:输入用户名/密码),
超过此时间没有完成的话,数据库会断开此连接,并将客户端的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
11.设置在指定的时间间隔内必须有数据接收/发送,为了防止长时间的等待
SQLNET.RECV_TIMEOUT
SQLNET.SEND_TIMEOUT
12.限制访问数据库的客户端IP:
#允许访问的IP
TCP.INVITED_NODES=(192.168.133.103)
#不允许访问的IP
TCP.EXCLUDED_NODES=(192.168.133.102)
#检测上述参数的设置
TCP.VALIDNODE_CHECKING=yes
当不允许访问的客户端连入时,会出现下列错误
as sysdba
ERROR: ORA-12537: TNS:connection closed
Warning: You are no longer connected to ORACLE.
13.对tnsping命令进行跟踪,文件名是tnsping.trc
#trace文件的目录,默认在$ORACLE_HOME/network/trace下
TNSPING.TRACE_DIRECTORY
#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TNSPING.TRACE_LEVEL
14.设置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
15.强制使用dedicated方式连接数据库
#当设置为on时,会在连接描述中自动添加(SERVER=dedicated),如果已经设置了
(SERVER=shared)也会被覆盖,默认为offUSE_DEDICATED_SERVER
|