sqlnet.ora 文件的理解

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地址(可选)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值