首页 > 数据库 > Oracle > sqlnet.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)
上面通过注释简单说了一下它的两个作用,而这两个作用也是最常配置的,下面就说说这两个配置项的作用。
而关于Oracle的身份认证,这又是一个很大的议题,又够我写一篇文章去总结的,我还是点到为止。当然了,我推荐一篇关于Oracle身份认证的文章,大家可以看看:《Oracle 身份验证方式》
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
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29674916/viewspace-2129526/ ,如需转载,请注明出处,否则将追究法律责任。