tnsnames.ora对应的是客户端上的连接配置
可以说在本地的数据库不用开监听listener.ora就可以访问数据库(访问数据库时不带 @dbname ),但是访问远程数据库的话,远程数据库一定要开监听
tsnnames.ora 里 DESCRIPTION 前面那个oratest 不一定要跟里面的service_name一样,它只是给这个连接串起的一个别名,可以任意取名字。比如
ORATESTa =
注意:改oratest 为 oratesta 以后,即修改tnsnames.ora后,要重新进入SQL*Plus进行连接
平时的连接 c:/>sqlplus aa/aa123@oratest 可以改为直接用连接字符串,例如:
c:/>sqlplus aa/aa123@(DESCRIPTION = 监听listener.ora
监听的启动lsnrctl start 并不会去找 sid_name 是否存在,甚至数据库是否启动都不理会。可是试验将数据库shutdown掉,lsnrctl start 都是成功的不会提示错误,或者数据库运行状态下将listener.ora的内容改一下比如改sid_name为不存在sid,然后lsnrctl start也不会出错,这就说明只有在连接的时候才会去找sid_name,才会有错误提示
另外,listener.ora内容修改以后,要重新启动修改的内容才生效
sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS,NONE)
当为 nts 的时候是操作系统验证,为 none 的时候是采用密码文件认证方式
试验如下:
环境:windows
修改了SQLNET.AUTHENTICATION_SERVICES= (NONE) 但是
SQL> CONN AA/AA123
已连接。
已连接。
照样连接成功
SQL>CONN SYS/SYS123 AS SYSDBA
已连接。
也是连接成功
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
警告: 您不再连接到 ORACLE。
这就说明当值为 NONE
注意:1、修改sqlnet.ora是不需要重新启动数据库的