详解sqlnet.ora的作用

前言

在写《Oracle学习笔记——配置监听》这篇文章时,发现写的收不住了,有点长了,那就分出一个知识点出来吧,就有了这篇文章,如果大家对这篇文章感兴趣,我建议大家也去读读《Oracle学习笔记——配置监听》这篇文章,这样就能更好的理解listener.ora、sqlnet.ora和tnsnames.ora这三个文件之间的关系了。

就是一个配置文件

说到sqlnet.ora文件,我们平时关注的比较少,可以说是非常少,一般也就配置一下listener.ora和tnsnames.ora这两个文件。那么这个sqlnet.ora是干嘛的呢?

说白了,sqlnet.ora文件也就是一个文本配置文件,里面有一些配置项,然后程序读取这里面的配置项,进行一些配置,控制客户端访问数据库服务器。我们先看看sqlnet.ora中的内容。

  1. SQLNET.AUTHENTICATION_SERVICES= (NTS)

  2. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

里面就上面那么两行的内容,先简单说说这两行分别起什么作用。

  1. # 指定启动一个或多个认证服务

  2. SQLNET.AUTHENTICATION_SERVICES= (NTS)

  3.  
  4. # 指定CLIENT NAME解析方法的次序,默认是NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)

  5. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

常见的作用

上面通过注释简单说了一下它的两个作用,而这两个作用也是最常配置的,下面就说说这两个配置项的作用。

  1. 指定启动一个或多个认证服务
    认证服务就是指Oracle的身份验证服务,你登陆Oracle时,有的时候不需要输入用户名,有的时候既需要输入用户名,也需要输入密码。那什么时候什么都不需要输入,什么时候都需要输入呢?这就和这里指定的认证服务有关系了。一般有以下三种取值:

     

    而关于Oracle的身份认证,这又是一个很大的议题,又够我写一篇文章去总结的,我还是点到为止。当然了,我推荐一篇关于Oracle身份认证的文章,大家可以看看:《Oracle 身份验证方式

    • NONE:作用是不允许通过OS系统用户登录数据库,需要提供用户名及密码;
    • ALL:作用是允许所有的登录方式;
    • NTS:作用是允许本地操作系统用户认证;

指定CLIENT NAME解析方法的次序
我们连接数据的时候,会有以下的语法格式的输入:

CONNECT username/password [@db_alias] AS [SYSOPER | SYSDBA] ;

可以看到这个语法中,有一个db_alias,这个东西是什么呢?这个db_alias就是在tnsnames.ora中定义的数据库的别名,比如:

  1. #ORCL是个别名

  2. ORCL =

  3. (DESCRIPTION =

  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

  5. (CONNECT_DATA =

  6. (SERVER = DEDICATED)

  7. (SERVICE_NAME = orcl)

  8. )

这个db_alias就是上面所说的ORCL,那么我们连接的时候,怎么知道这个ORCL是个什么东西呢?这就和sqlnet.ora中的配置有关系了。

当第一个指定为TNSNAMES时,就先到tnsnames.ora文件中去找对应的db_alias;如果找不到,就再按指定的第二种方式去找;如果都找不到,就将指定的db_alias当做主机名在网络上进行解析,得到数据库服务器的地址。

很多朋友对EZCONNECT很不解,这个EZCONNECT表示简单连接,就是说可以不用在tnsnames.ora文件去查询服务名就可以进行数据库的连接,比如我们可以这样进行连接:

username/password@hostname:port/service_name

总结

Oracle的知识点很多,很庞大,我在学习的过程中也是点到为止,把握适当的深度,初步学习时,切莫想做到一次就把Oracle挖透。

我写博客的原则是:一篇文章讲清楚一个知识点。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值