关于SQLNET.AUTHENTICATION_SERVICES= (NTS) 的解释

原文转自:http://www.360doc.com/content/12/0207/12/3446769_184740592.shtml

 
 
 
标题所代表的意思为 使用操作系统本地验证,一般不用,有安全问题。通常需要改成下面的值:

SQLNET.AUTHENTICATION_SERVICES= (NONE)

 

1. 这样就不允许使用操作系统本地验证了,例如:

 C:\>sqlplus /nolog

 Sqlplus>connect / as sysdba

 error:ORA-01031:  insufficient   privileges

 

2. 如果如此设置:SQLNET.AUTHENTICATION_SERVICES= (NTS)

 则效果如下:

 C:\>sqlplus /nolog

 Sqlplus>connect / as sysdba

 Connected

 

 注:上面的前提要求当前登陆用户必须在ora_dba组里。如下图所示:  

 关于SQLNET.AUTHENTICATION_SERVICES= (NTS) 的解释 - RY.夜璃 - 陌 賏

 

 

3. Oracle Client中, SQLNET.ORA文件是在配置了本地命名方式后才产生的,注意不是配置网络服务名.

 Net configuration assistant-->第二个   本地命名方法--->本地

 

4. 如果当前系统存在多个实例,则连接时会连到哪一个实例呢?

 检查注册表:HKEY_LOCAL_MACHINE / SOFTWARE / ORACLE / HOMEO 的相关内容,发现缺少 ORALCE_SID 项
 经过试验:
    如果数据库有两个以上的实例,使用DBCA删除一个实例后,
   系统会将注册表的ORACLE_SID项也删除掉,从而导致了执行connenct / as sysdba失败.
    将相关的 ORALCE_SID 项添加入注册表后,执行
 SQL> conn /@orcldb as sysdba (同connect /@orcldb as sysdba)
 已连接。

 

5. 断开当前连接

 Sqlplus>disconn

 

6. 查询当前使用的数据库实例

 Sqlplus>select name from V$database;

 NAME

 -----------------------------------

 ORCLDB

 注意:

 v$xxxx都是'动态性能视图'的名字,或者称为Oracle数字字典视图。

 

 V$开头的一般都是DBA用户使用的,普通用户想使用,要用grant select any dictionary to来赋予查询数据字典的权限

posted @ 2018-06-07 10:56  showonce  阅读(6073)  评论(0编辑  收藏  举报