zoukankan      html  css  js  c++  java
  • Redhat6.8安装Oracle11g下遇到两个问题记录

    问题一: 刚刚安装完毕Oracle之后,尝试sqlplus登陆报错,TNS:net service name is incorrectly specified

    image

    参考文章:关于环境变量ORACLE_SID简单谈下

    说明:环境变量ORACLE_SID未设置正确,将环境变量ORACLE_SID设置为之前安装的数据库实例名即可;export只是当前会话环境变量生效,修改文件 .bash_profile即可

    image

     

    假设环境变量ORACLE_SID没有设置对,数据库实例不存在,会报这样错误:

    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file '/data/app/oracle/product/dbhome_1/dbs/initolcom115DB.ora'

    image

     

     

    问题二.Linux conn sys as sysdba 即使不输入密码、密码输入错误也能登陆进入SYS用户;或者 conn  / as sysdba 可以直接登陆数据库不用输入密码

    在同事的机器Windows上测试,发现Oracle同样不需要密码、密码错误也可以登陆SYS用户;

        说明:这属于操作系统级别的认证方式,Linux下用户为Oracle(我觉得属于  数据库DBA组 的用户)的用户以SYSDBA登陆数据库不验证密码正确性;

    Windows下取消操作系统认证方式:

    修改$ORACLE_HOME/network/admin目录下的sqlnet.ora文件

          SQLNET.AUTHENTICATION_SERVICES= (NTS)

    改为如下即可,在同事的机器上发现不用重启数据库就能生效;

        SQLNET.AUTHENTICATION_SERVICES= (NONE)

     

    Linux下取消操作系统认证方式:

       我在linux下没有找到该sqlnet.ora文件,通过验证,我得出的结论是,操作系统认证  不验证用户以SYSDBA方式登陆时候的密码正确性,只有在当前用户归属于数据库DBA组的时候;

    Redhat6.8安装Oracle11gR2 这是我之前记录的安装Oracle的过程,其中安装过程中指定了两个数据库DBA组 dba 以及普通用户组oinstall

    新增一个用户,归属于 oinstall组,测试结果如下:

    image

    将其用户组改为dba组,命令 usermod –G  dba  lbb

    image

     

    结论,linux下操作系统认证  用户为数据库dba组才有权限 无视密码 直接conn / as sysdba登陆,这也是为啥有时候用户登陆不需要密码也能SYSDBA登陆数据库,所以Oracle安装时候还是指定两个用户组;linux下的sqlnet.ora文件我没发现哪里有。

    问题三.  linux其他用户登陆Oracle时候lost contact问题:

    image

    解决方案:到$ORACLE_HOME/bin目录下执行  chmod 6751 oracle 或者  chmod +s oracle 命令即可;

    非Oracle用户lost contact解决方案  非Oracle用户lost contact解决方案2

     

  • 相关阅读:
    构建之法读后感
    开发web信息管理系统用到的相关技术
    java 动手动脑
    Java 课后作业
    Java 7 动手动脑
    java 动手动脑
    java 字符串
    java 动手动脑
    java 课后作业
    课堂实验
  • 原文地址:https://www.cnblogs.com/lvbinbin2yujie/p/10506618.html
Copyright © 2011-2022 走看看