前言
在写《Oracle学习笔记——配置监听》这篇文章时,发现写的收不住了,有点长了,那就分出一个知识点出来吧,就有了这篇文章,如果大家对这篇文章感兴趣,我建议大家也去读读《Oracle学习笔记——配置监听》这篇文章,这样就能更好的理解listener.ora、sqlnet.ora和tnsnames.ora这三个文件之间的关系了。
就是一个配置文件
说到sqlnet.ora文件,我们平时关注的比较少,可以说是非常少,一般也就配置一下listener.ora和tnsnames.ora这两个文件。那么这个sqlnet.ora是干嘛的呢?
说白了,sqlnet.ora文件也就是一个文本配置文件,里面有一些配置项,然后程序读取这里面的配置项,进行一些配置,控制客户端访问数据库服务器。我们先看看sqlnet.ora中的内容。
里面就上面那么两行的内容,先简单说说这两行分别起什么作用。
常见的作用
上面通过注释简单说了一下它的两个作用,而这两个作用也是最常配置的,下面就说说这两个配置项的作用。
- 指定启动一个或多个认证服务
认证服务就是指Oracle的身份验证服务,你登陆Oracle时,有的时候不需要输入用户名,有的时候既需要输入用户名,也需要输入密码。那什么时候什么都不需要输入,什么时候都需要输入呢?这就和这里指定的认证服务有关系了。一般有以下三种取值:- NONE:作用是不允许通过OS系统用户登录数据库,需要提供用户名及密码;
- ALL:作用是允许所有的登录方式;
- NTS:作用是允许本地操作系统用户认证;
而关于Oracle的身份认证,这又是一个很大的议题,又够我写一篇文章去总结的,我还是点到为止。当然了,我推荐一篇关于Oracle身份认证的文章,大家可以看看:《Oracle 身份验证方式》
- 指定CLIENT NAME解析方法的次序
我们连接数据的时候,会有以下的语法格式的输入:可以看到这个语法中,有一个db_alias,这个东西是什么呢?这个db_alias就是在tnsnames.ora中定义的数据库的别名,比如:
这个db_alias就是上面所说的ORCL,那么我们连接的时候,怎么知道这个ORCL是个什么东西呢?这就和sqlnet.ora中的配置有关系了。
当第一个指定为TNSNAMES时,就先到tnsnames.ora文件中去找对应的db_alias;如果找不到,就再按指定的第二种方式去找;如果都找不到,就将指定的db_alias当做主机名在网络上进行解析,得到数据库服务器的地址。
很多朋友对EZCONNECT很不解,这个EZCONNECT表示简单连接,就是说可以不用在tnsnames.ora文件去查询服务名就可以进行数据库的连接,比如我们可以这样进行连接:
总结
Oracle的知识点很多,很庞大,我在学习的过程中也是点到为止,把握适当的深度,初步学习时,切莫想做到一次就把Oracle挖透。
我写博客的原则是:一篇文章讲清楚一个知识点。
转载自http://www.jellythink.com/archives/991