zoukankan      html  css  js  c++  java
  • sysdba不能远程登录,我们该怎么做 (转载)

    sysdba不能远程登录这个也是一个很常见的问题了。

    碰到这样的问题我们该如何解决呢?


    我们用sysdba登录的时候,用来管理我们的数据库实例,特别是有时候,服务器不再本台机器,这个就更是有必要了。

    当我们用sqlplus "/ as sysdba"
    是可以登录的。

    但是我们如果用sqlplus "sys/password@tnsname as sysbda"这样的方式去不能登录.

    这里我们的错误一般分为两类
    第一类: 提示ORA-01031: insufficient privileges(权限不足)
    引用:
    sqlplus "sys/password@10.0.0.195 as sysdba"
    ERROR:
    ORA-01031: 权限不足


    如果是这样的错误,你明明是用这个sys登录的,而且确实是sysdba的权限,为什么登录却提示你的权限不够叻。
    这里的问题出现在密码文件里,由于你的密码文件缺损或者不存在,而Oracle实例对sysdba的权限是根据这个
    密码文件来判断的,如果你的用户被grant to sysdba了,那么这个用户的密码和用户名也在这个密码文件了。
    这样也就发现你不是sysdba的角色,当然as sysdba就会提示权限不足了哟。
    为什么这样做了,如果我们的数据库没有open,那么对于的一些动态视图是不能打开的,所以oracle必须把这些
    用户的口令和username放在一个独立的文件里,这样在数据库还不是open的状况写,有个地方判断了。

    如何解决了。我们首先来判断一下
    执行sql
    SQL> select * from v$pwfile_users;
    USERNAME SYSDB SYSOP
    ------------------------------ ----- -----
    SYS TRUE TRUE

    如果这里选择不出了记录的话,就是密码文件没有叻。

    这里解决的方法就是重建orapwd文件
    使用密码文件orapwd 命令 orapwd -c file=”$ORACLE_HOME/dbs/orapwd$ORACLE_SID” entity=5 password=changeoninstall
    再次查看 v$pwfile_users 这时候有一条记录了

    现在再试试,我们的问题基本上就解决了

    还有一种情况,提示的是ORA-01017:用户名密码出错
    这样的错误,可是你的密码和用户名明明输入的都是正确的。这又是为什么叻
    检查一下系统参数remote_login_passwordfile的值,
    这里需要启动密码文件的话,需要前提就是这个值, 这里的值可以NONE,EXCLUSIVE和SHARE
    EXCLUSIVE和SHARE都可以,EXCLUSIVE是独占的文件,SHARE是多实例的体系中的共享模式
    这个问题基本上就是这个值导致的
    SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;

    现在重启服务试试看。

    已经OK解决了吧

    这里以前有分别谈过这两个问题
    可以看看这两个问题的分别讨论
    ORA-01017:用户名密码出错 故障实例
    解决10g上 非本机SQLPLUS conn as sysdba出现ORA-01031: insufficient privileges问题
  • 相关阅读:
    A Color Game
    《算法分析》作业1
    The 2018 ACM-ICPC CCPC NING XIA G-Factories
    2017北京ICPC Pangu and Stones(区间DP)
    Comet OJ
    2019牛客多校训练营第四场补题
    2019牛客多校训练营第五场补题
    2017CCPC哈尔滨 B:K-th Number(二分+尺取)
    启发式分治入门 Non-boring sequences UVA
    2019牛客多校训练营第三场补题
  • 原文地址:https://www.cnblogs.com/chao3/p/4523888.html
Copyright © 2011-2022 走看看