一、IP 黑白名单
-
相关参数
-
TCP.VALIDNODE_CHECKING = YES
使用这个参数来启用下边的两个参数。
-
TCP.EXCLUDED_NODES = (list of IP addresses)
指定不允许访问oracle的节点,可以使用主机名或者IP地址
-
TCP.INVITED_NODES = (list of IP addresses)
指定允许访问db的客户端,他的优先级比TCP.EXCLUDED_NODES高。
-
注意:
-
excluded_nodes与invited_nodes为互斥方式,不可以同时使用
-
如果tcp.invited_nodes与tcp.excluded_nodes都存在,则tcp.invited_nodes优先
-
需要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动
-
配置或修改之后,一定要重起监听或reload(lsnrctl reload listener)才能生效。
-
例子
tcp.invited_nodes = (192.168.1.192,192.168.1.193,192.168.1.194,192.168.2.*)
二、登录方式限定
-
SQLNET.AUTHENTICATION_SERVICES= (NTS)
指定启动一个或多个认证服务none:no authentication methods, including Microsoft Windows native operating system authentication. When SQLNET.AUTHENTICATION_SERVICES is set to none, a valid user name and password can be used to access the database. -
all:所有的认证方式都支持
-
beq:native operating system authentication for operating systems other than Microsoft Windows
-
kerberos5:Kerberos authentication
-
nts:Windows系统认证
-
radius:Remote Authentication Dial-In User Service (RADIUS) authentication
-
tcps:SSL authentication
-
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
指定client name解析方法的次序,默认是NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname) tnsnames:客户端就会首先在tnsnames.ora文件中找orcl的记录(此处orcl为@后面的标记,由于不知道该如何具体称呼,所以此处用orcl代替,此处可能是库名,可能是tnsnames的名字,根据环境不同,所指的内容也不同) -
ldap(dictionary server):Set to resolve a database service name, net service name, or network service alias through a directory server.
-
hostname/ezconnect:尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例
-
cds (分布式环境下):Set to resolve service information through an existing Network Information Service (NIS).
-
nis (Network Information Service (NIS)
三、其它限制
-
时间限制
连接超时时间,即连接300秒没有活动自动断开连接。
sqlnet.expire_time = 300
-
版本限制
可以对客户端的版本进行限制,8代表必须是8i以上版本的客户端才允许连进来
-
12c以前版本(Version 9.2.0.8 to 11.2.0.4)
SQLNET_ALLOWED_LOGON_VERSION=8;
-
12c(默认只允许11g和12c客户端连进来)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
四、Windows下的配置
-
SQLNET.AUTHENTICATION_SERVICES 必须设置为NTS 或者ALL 才能使用OS 认证;不设置或者设置为其他任何值都不能使用OS 认证。
-
该用户必须属于OSDBA 组才能以sysdba 身份登录。这里的OSDBA 组在不同类型的操作系统上,名称会不一样。在unix 系统上名称为“dba ” ,而在windows 系统上名称则为“ORA_DBA ” 。
-
要保证 remote_login_passwordfile 参数 = EXCLUSIVE