sqlnet.ora 文件即可以存在于服务器端也可以存在与客户端。
如果是在客户端,则是控制客户端访问数据库服务器的方式。
NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT) --限定客户端只能通过TNSNAMES,EZCONNECT方式来访问数据库
在Linux中,默认情况下可以通过主机认证的方式登录数据库,不需要验证用户名、密码,所以可以通过在服务器端对sqlnet.ora进行限定。
SQLNET.AUTHENTICATION_SERVICES 有三个值:
NONE: 禁止操作系统认证,必须通过密码来登录。
ALL:可以通过操作系统认证,也可以通过密码来登录。
对于windows平台,需要设置参数SQLNET.AUTHENTICATION_SERVICES = (NTS) 开启操作系统认证的登陆。
1. SQLNET.AUTHENTICATION_SERVICES = (NTS) --基于WINDOWS操作系统验证
2. SQLNET.AUTHENTICATION_SERVICES = (NONE) --基于Oracle密码文件验证
3. SQLNET.AUTHENTICATION_SERVICES = (ALL) --基于操作系统的验证
对于Linux和Unix平台,编辑$ORACLE_HOME/network/admin/sqlnet.ora文件,分别验证参数值为NONE或ALL时:
设置SQLNET.AUTHENTICATION_SERVICES=(NONE)时,不启用操作系统验证,需要使用密码登陆。
设置SQLNET.AUTHENTICATION_SERVICES=(ALL) 时,启用操作系统验证登陆,不需要用密码登录数据库。
总结一下:
1、在windows中,是通过sqlnet.ora这个文件来实现验证机制控制的,当你装完数据库并用netca创建了监听,就会生成这个文件.
通常默认是以下内容:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
也就是说,默认就是采用操作系统验证的,也许Oracle认为,拥有了SA权限,就拥有了系统最高权限,所以数据库DBA的sys用户也无需再验证密码了。
如果设置成(NONE),就表示采用数据库身份验证,还可以设置成(NONE,NTS),其实这样设也没有意义了,只要括号中有NTS,就会采用操作系统验证,NONE就没有用了。
sqlnet.ora 还可以限制哪些IP地址能够访问数据库:
在sqlnet.ora中限定白名单IP地址:
TCP.VALIDNODE_CHECKING=yes
TCP.INVITED_NODES=(192.168.171.135,127.0.0.1) --只容许这两个地址访问数据库
需要重启监听才能生效。
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES = (192.168.1.100, 10.0.0.2) # 允许的IP地址
TCP.EXCLUDED_NODES = (192.168.1.200) # 禁止的IP地址(可选)
1万+

被折叠的 条评论
为什么被折叠?



