• oracle登陆认证方式


    转自:http://blog.itpub.net/14359/viewspace-683064/

    案例:

    1,发现此时操作系统认证不成功:

    C:UsersAdministrator.WIN-20100719IOX>sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 12月 31 14:25:52 2010

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    ERROR:

    ORA-01031: insufficient privileges

    请输入用户名:

    ERROR:

    ORA-01017: 用户名/口令无效; 登录被拒绝

    请输入用户名:

    ERROR:

    ORA-01017: 用户名/口令无效; 登录被拒绝

    SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus

    2,   查看sqlnet.ora 文件内容:

    # sqlnet.ora Network Configuration File: C:appAdministratorproduct

    11.2.0dbhome_1 etworkadminsqlnet.ora

    # Generated by Oracle configuration tools.

    # This file is actually generated by netca. But if customers choose to

    # install "Software Only", this file wont exist and without the native

    # authentication, they will not be able to connect to the database on NT.

    SQLNET.AUTHENTICATION_SERVICES= (NTS)

    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

    3,检查compmgmt.msc, 在命令行下敲入进入计算机管理,选择本地用户和组—>组,发现一个组的名字叫做ORA_DBA,未把administrator用户加入该组

    4,把administrator用户添加到该组后,此时可用操作系统认证登录Oracle数据库:

    C:UsersAdministrator.WIN-20100719IOX>sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 12月 31 14:30:50 2010

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    连接到:

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    SQL>

    现象:

    C:>sqlplus "/as sysdba"

    SQL*Plus:Release 10.2.0.1.0 - Production on Fri Nov 2 16:16:22 2007

    Copyright (c) 1982, 2005, Oracle. All right reserved.

    ERROR:

    ORA-01031: insufficient privileges

    Enter user-name:

    这个错误一般是由于Oracle登录认证出现了问题:

    Oracle登录认证有两种方式,基于操作系统的登录认证,基于Oracle密码文件的验证。

    可以通过改变sqlnet.ora文件,可以修改Oracle登录认证方式:

    SQLNET.AUTHENTICATION_SERVICES= (NTS)是基于操作系统验证;

    SQLNET.AUTHENTICATION_SERVICES= (NONE)是基于Oracle密码文件验证;

    SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)是二者共存。

    经过测试,以上规则只适用于WINDOWS服务器,在LINUX下规则如下:

    默认情况下LINUX下的Oracle数据库sqlnet.ora文件没有SQLNET.AUTHENTICATION_SERVICES参数,此时是基于操作系统认证和Oracle密码文件验证共存的,加上SQLNET.AUTHENTICATION_SERVICES参数后,不管SQLNET.AUTHENTICATION_SERVICES设置为NONE或者NTS,都是基于Oracle密码验证的。

    Windows下设置Oracle登录验证为操作系统验证方式的方法:

    1:把os用户加到ora_dba组

    2:设置sqlnet.ora SQLNET.AUTHENTICATION_SERVICES = (NTS)

    或者你可以重建口令文件来改密码,只不过原来授予sysdba和sysoper权限的用户,就不再具有这2个权限了。

    有一种Oracle的登录方式是操作系统验证登录方式,即常说的OS验证登录方式,在SQL server中也有这种方式。当用Windows的管理员帐户登陆系统后登陆数据库,只要加上 as sysdba,不管用什么用户名和密码登陆,都正确,因为这时系统已经忽略了/ 两边的用户名和密码,默认就是sys用户。有些朋友经常使用connect / as sysdba登录,但不知道为什么没有提供用户名和密码就得到了sysdba的权限。还认为这样是不是不安全呢?

    Oracle在常见的多用户操作系统上都可以进行OS认证方式来登录。例如SOLARIS,WINDOWS等等。下面以常见的WINDOWS操作系统来说明看一下这个操作系统认证方式登录的原理。如果你的机器可以使用connect / as sysdba获取sysdba的权限,那么下面的每一个过程你的机器上都会得到验证,如果不能,按照下面的操作更改后,你也能以这种方式登录。在命令行下敲入compmgmt.msc进入计算机管理,选择本地用户和组—>组,看是不是有一个组的名字叫做ORA_DBA,双击改组可以看到里面是不是有administrator用户,想一想你是不是以administrator用户登录的呢?再进入Oracle安装目录(即$ORACLE_HOME),找到sqlnet.ora文件看看里面的是不是有SQLNET.AUTHENTICATION_SERVICES= (NTS), 如果这些都对的话,你就能以操作系统认证的方式(connect / as sysdba)来登录Oracle。

    接下来的问题是,如果你的数据很重要,出于安全考虑,希望禁止这种操作系统认证的方式。那么该怎么做呢?很简单,找到在刚才的第6步骤中的sqlnet.ora文件,将SQLNET.AUTHENTICATION_SERVICES= (NTS)改为SQLNET.AUTHENTICATION_SERVICES=(NONE)即可。你再试一下看看会不会得到到如下结果:

    ERROR:

    ORA-01031: insufficient privileges

    警告: 您不再连接到 ORACLE。

    如果你的机器不能以系统认证的方式登录,检查以上几个步骤,你总可以找到原因的。

    附:

    要知道以下几种登陆方式不是一种概念

    sqlplus /nolog

    1:  conn / as sysdba                    本机登陆,使用操作系统认证,有无监听都可以

    2:  conn sys/password as sysdba   本机登陆,使用密码文件或操作系统认证,有无监听都可以

    3:  conn sys/password@dbanote as sysdba  可以本机可以远程,使用密码文件认证,必须有监听,必须有tnsnames.ora,remote_login_passwordfile必须是EXCLUSIVE

    说明:

    从Oracle的解释可以知道,SQLNET.AUTHENTICATION_SERVICES=(NTS)是WINDOWS系统专用的,对LINUX/UNIX是不适用的。

    最后做一个简单的总结:

    1、在WINDOWS下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。

    2、在LINUX下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。

  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/sharpest/p/10504027.html
Copyright © 2020-2023  润新知