sqlnet.ora
2016-05-09 22:19
387 查看
[b]sqlnet.ora:服务端和客户端都可能存在
[/b]
sqlnet.ora最常用的两个功能是:
1)连接方式: 用于指定客户端的名称解析查询的命名方法的顺序
NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
2)认证方式:SQLNET.AUTHENTICATION_SERVICES
1、认证方式参数SQLNET.AUTHENTICATION_SERVICES
三种认证方式:
1)
SQLNET.AUTHENTICATION_SERVICES = (NTS)
这个只对WINDOWS上有用了,操作系统认证,无需输入用户名和密码可登录sys
2)none
for no authentication methods. A valid username and password can be used to access the database.
如果设置成(NONE),就表示采用数据库身份验证,还可以设置成(NONE,NTS),其实这样设也没有意义了,只要括号中有NTS,就会采用操作系统验证,NONE就没有用了
3)all for all authentication methods
当客户端与服务端SQLNET.AUTHENTICATION_SERVICES=(ALL)无法 用AA/BB用户名密码登陆。有一边是NONE即可连接
a、服务器端不配置SQLNET.ORA文件,在客户端配置SQLNET.AUTHENTICATION_SERVICES=(ALL),可以正常登陆。
sqlplus 用户名/密码@网络服务名 方式可以登录
b、当客户端与服务端同时配置:SQLNET.AUTHENTICATION_SERVICES=(ALL)无法用AA/BB用户名密码登陆
sqlplus
用户名/密码@网络服务名 方式和简易连接都不可以登录 会报ORA-12641错误
c、将客户端或服务器的之一的sqlnet.ora
改为SQLNET.AUTHENTICATION_SERVICES=(NONE),即可连接
sqlplus用户名/密码@网络服务名 方式和简易连接都可以登录
d、SQLNET.AUTHENTICATION_SERVICES参数注释的情况下
sqlplus 用户名/密码@网络服务名 方式和简易连接都可以登录
2、NAMES.DIRECTORY_PATH(SQLNET.AUTHENTICATION_SERVICES=(none)或者该参数注释)
1)NAMES.DIRECTORY_PATH=(tnsnames),此时只能使用tnsnames中本地名,简易连接将报错,也就是客户端就只会从tnsnames.ora查找你要连接的字符串(网络服务名)记录,如果tnsname.ora文件中没有此记录,则连接不上数据库
sqlplus 用户名/密码@网络服务名 --使用本地名可以连接
sqlplus 用户名/密码@IP或主机名:端口/server_names 使用简易连接的方法,不能连,会报ORA-12154
--默认端口1521情况下,可不加端口号,即sqlplus 用户名/密码@IP或主机名/server_names
2)NAMES.DIRECTORY_PATH=(tnsnames,hostname),此时使用tnsnames中本地名和简易连接都可以
客户端首先会从tnsnames.ora查找你要连接的字符串(如orcl)记录,如果tnsname.ora文件中没有此记录,则尝试把你要连接的字符串(如orcl)当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=连接字符串(如orcl)这个实例,当然这里连接字符串(如orcl)并不是一个主机名,最后会尝试以ezconnect的方式连接数据库
3)NAMES.DIRECTORY_PATH=(tnsnames,ezconnect),此时使用tnsnames中本地名和简易连接都可以
4)该配置在注释的情况下,使用tnsnames中本地名和简易连接都可以;此情况如果没有tnsname.ora,本地名无法连接,简易连接可以
[/b]
sqlnet.ora最常用的两个功能是:
1)连接方式: 用于指定客户端的名称解析查询的命名方法的顺序
NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
2)认证方式:SQLNET.AUTHENTICATION_SERVICES
1、认证方式参数SQLNET.AUTHENTICATION_SERVICES
三种认证方式:
1)
SQLNET.AUTHENTICATION_SERVICES = (NTS)
这个只对WINDOWS上有用了,操作系统认证,无需输入用户名和密码可登录sys
2)none
for no authentication methods. A valid username and password can be used to access the database.
如果设置成(NONE),就表示采用数据库身份验证,还可以设置成(NONE,NTS),其实这样设也没有意义了,只要括号中有NTS,就会采用操作系统验证,NONE就没有用了
3)all for all authentication methods
当客户端与服务端SQLNET.AUTHENTICATION_SERVICES=(ALL)无法 用AA/BB用户名密码登陆。有一边是NONE即可连接
a、服务器端不配置SQLNET.ORA文件,在客户端配置SQLNET.AUTHENTICATION_SERVICES=(ALL),可以正常登陆。
sqlplus 用户名/密码@网络服务名 方式可以登录
b、当客户端与服务端同时配置:SQLNET.AUTHENTICATION_SERVICES=(ALL)无法用AA/BB用户名密码登陆
sqlplus
用户名/密码@网络服务名 方式和简易连接都不可以登录 会报ORA-12641错误
c、将客户端或服务器的之一的sqlnet.ora
改为SQLNET.AUTHENTICATION_SERVICES=(NONE),即可连接
sqlplus用户名/密码@网络服务名 方式和简易连接都可以登录
d、SQLNET.AUTHENTICATION_SERVICES参数注释的情况下
sqlplus 用户名/密码@网络服务名 方式和简易连接都可以登录
2、NAMES.DIRECTORY_PATH(SQLNET.AUTHENTICATION_SERVICES=(none)或者该参数注释)
1)NAMES.DIRECTORY_PATH=(tnsnames),此时只能使用tnsnames中本地名,简易连接将报错,也就是客户端就只会从tnsnames.ora查找你要连接的字符串(网络服务名)记录,如果tnsname.ora文件中没有此记录,则连接不上数据库
sqlplus 用户名/密码@网络服务名 --使用本地名可以连接
sqlplus 用户名/密码@IP或主机名:端口/server_names 使用简易连接的方法,不能连,会报ORA-12154
--默认端口1521情况下,可不加端口号,即sqlplus 用户名/密码@IP或主机名/server_names
2)NAMES.DIRECTORY_PATH=(tnsnames,hostname),此时使用tnsnames中本地名和简易连接都可以
客户端首先会从tnsnames.ora查找你要连接的字符串(如orcl)记录,如果tnsname.ora文件中没有此记录,则尝试把你要连接的字符串(如orcl)当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=连接字符串(如orcl)这个实例,当然这里连接字符串(如orcl)并不是一个主机名,最后会尝试以ezconnect的方式连接数据库
3)NAMES.DIRECTORY_PATH=(tnsnames,ezconnect),此时使用tnsnames中本地名和简易连接都可以
4)该配置在注释的情况下,使用tnsnames中本地名和简易连接都可以;此情况如果没有tnsname.ora,本地名无法连接,简易连接可以
相关文章推荐
- mysql授权
- Can't connect to MySQL server on localhost (10061)解决方法
- mysql源码安装
- ContentProvider 之 短信数据库和表结构
- redis学习笔记(12)---server基本流程
- oracle笔记
- Redis 防缓存雪崩锁方法实现
- 2016-5-9oracle测试面试
- SQL优化--发现问题
- 使用html2canvas截屏,利用itextpdf转为pdf保存到数据库
- 商品超市管理系统作业
- mysql的多表连接
- MySQL 数据导入
- Mysql下载与版本选择
- SQLite 介绍
- MySQL存储过程简单记录
- Spark中文手册7:Spark-sql由入门到精通【续】
- Spark中文手册6:Spark-sql由入门到精通
- SqlHelper类(BY_韩顺平)
- 解决Hibernate原生SQL映射问题