果冻想
认真玩技术的地方

Oracle学习笔记——详解sqlnet.ora的作用

前言

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

就是一个配置文件

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

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

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

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

# 指定启动一个或多个认证服务
SQLNET.AUTHENTICATION_SERVICES= (NTS)

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

常见的作用

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

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

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

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

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

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

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

    #ORCL是个别名
    ORCL =
        (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
            (CONNECT_DATA =
                (SERVER = DEDICATED)
                (SERVICE_NAME = orcl)
            )
        )
    

    这个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挖透。

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

果冻想,认真玩技术的地方。

2015年4月22日 于呼和浩特。

未经允许不得转载:果冻想 » Oracle学习笔记——详解sqlnet.ora的作用
网站维护离不开您的支持,您可以赞助本站,谢谢支持
×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

赞助本站
关注微信公众号
关注微信公众号和果冻一起分享你的疑惑与心得。
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

玩技术,我们是认真的

联系我们关于果冻