sysdba不能远程登录,我们该怎么做 (转载)

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

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

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

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

但是我们如果用sqlplus "sys/[email protected] as sysbda"这样的方式去不能登录.

这里我们的错误一般分为两类
第一类: 提示ORA-01031: insufficient privileges(权限不足)

引用:

sqlplus "sys/[email protected] 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问题

时间: 2024-07-30 05:25:05

sysdba不能远程登录,我们该怎么做 (转载)的相关文章

oracle sysdba用户远程登录

sysdba远程登录需要两个条件: 1.remote_login_passwordfile =exclusive时,启用口令文件,允许远程登录: 查看remote_login_passwordfile 参数 SQL> SHOW PARAMETER REMOTE_LOGIN_PASSWORD NAME TYPE VALUE ------------------------------------ ----------- remote_login_passwordfile string EXCLUS

禁用sysdba远程登录遇见的问题

为了安全起见,有些时候需要禁用sysdba远程登录,本地可以登录,搜了一下网上的资料,操作如下: alter system set remote_login_passwordfile=none scope=spfile sid='*'; --需重启数据库 vi $ORACLE_HOME/network/admin/sqlnet.ora #添加如下记录 SQLNET.AUTHENTICATION_SERVICES=(NTS) 然后lsnrctl reload 但是这样会有一个问题,数据库重启之后,

oracle11g 远程登录数据库

oracle11g 远程登录数据库比以往的任何版本都要简单,什么也不用做 1.OEM登录 在浏览器中直接输入,远程数据库的OEM网址,当然要把localhost或者主机名改成ip地址   https://localhost:1158/em/console/logon/logon 2.sqlplus登录 命令:sqlplus 用户名/密码@ip地址[:端口]/service_name [as sysdba] 示例:sqlplus sys/[email protected]:1521/test as

3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 3.7 su命令 su aming su - aming 切换用户的时候要加上 su - 这样才切换的彻底 切换到user5下面 因为之前 user5 的用户被锁定了 在切换到root下 更改下user5 的密码 但是前缀显示 -bash-4.5  是因为user5 用户没有家目录 先查看变user5的 所属主 所属组 退出aming 进入root用户 创建一个 目录 但是这样 前缀还是一样,是因为 /home/user5/

SSH 远程登录服务

试验环境:LITO 1.4.4 或者H3C Cloud Lab 需要设备:2台路由器 环境搭建如图 进入系统视图 .接口视图.设置IP地址 开启SSH 服务 创建用户 设置服务类型为ssh 设置密码 设置用户等级 进入到用户界面视图 设置验证方式. 验证方式有以下三种 password(密码) none(无验证)scheme 在此处我们使用scheme验证方式 设置协议类型. 由下图可以看到 协议类性支持多种,当开启多个协议类型是 可选择all,此处仅开启SSH服务协议 退回到系统视图 命令 q

远程登录阿里云上的MySQL

最近对云和服务器之类的感兴趣,想要将自己的数据什么的保存到远端服务器.研究了阿里云和百度云.今天算是有点进步吧. 我在阿里云上申请了个免费的云服务器(ECS),很可惜只能用5天.我也不太懂他的性能怎么样..反正能用吧.哈哈 上图吧. 1.主机终端管理:由于对Ubuntu 还算熟悉,我选了装ubuntu 的主机,在"更多操作"选项中,选择"连接终端",进入连接页面,按照提示输入"VNC"密码,就进入了主机系统,不过是命令行的终端 . 2.MySQL

远程登录SSHD使能

一.什么是SSH SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎所有UNIX平台—包括HP-UX.Li

MYSQL远程登录权限设置(转)

Mysql默认关闭远程登录权限,如下操作允许用户在任意地点登录: 1. 进入mysql,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; IDENTIFIED BY后跟的是密码,可设为空. 2. FLUSH privileges; 更新 Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许ro

远程登录ssh免密码

问题: 假如我们现在有两台机器:ServerA和ServerB,现在想要让ServerA不用输入密码就能够进行访问. 方法和原理: 我们使用ssh-keygen在ServerA上生成private和public密钥,将生成的public密钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上. 在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法[默认是DSR算法],该工具做linux系统的远程管理是非常安全的