用SYS本地登录或远程登录引起ORA-01031错误

  "历史总是上演惊人的相似", 在技术开发过程中,你也会总会碰到惊人相似的问题,这段时间我就碰到了”ORA-01031:insufficient privileges  权限不足”这个错误多次,一次是自己,一次是同事碰到的,顺便整理了下这个知识点。

情况一:

如果数据库实例安装在服务器A上,你用管理员
权限Administrator登录后,使用SQL> conn system/manage as sysdba登录
没有问题。但是如果你在服务器A上建立一个etl账号,使它率属于Remote Desktop Users 和Users 组,如下所示:

此时你用sys账号登录数据库时,就会报ORA-01031:insufficient privileges错误,退出etl账号,用管理员登录给etl账号赋予率属于Oracle DBA Group的权限

然后用etl账号登录,问题解决了,如果你赋予etl账号管理员组权限,但是没有ora_dba权限,如下所示, 结果会怎样?答案是依然会报权限不足的错误

 

情况二:此时我在远程机器B上,我使用sys账号远程登录时报ORA-01031:insufficient privileges或ORA-01017: invalid username/password; logon denied错误。

首先去检查下sqlnet.ora文件下是否有SQLNET.AUTHENTICATION_SERVICES= (NTS)设置,如何已经配置了这个选项。那么我们接下来检查下一下密码文件参数

很明显密码文件存在,如果查询没有记录,则说
明密码文件不存在,需要重建密码文件,有时候我们确实是sysdba的权限,为什么登录却提示你的权限不够叻?这里的问题可能出现在密码文件里,由于你的
密码文件缺损或者不存在,而ORALCE实例对sysdba的权限是根据这个密码文件来判断的,为什么这样做呢?如果我们的数据库没有OPEN,那么对于
的一些动态视图是不能打开的,所以ORACLE必须把这些用户的口令和USERNAME放在一个独立的文件里,这样在数据库还不是OPEN的状况写,有个
地方判断了。使用orapwd命令重建密码文件。orapwd命令的用法如下。

接下来查看系统参数remote_login_passwordfile

如果VALUE值不是EXCLUSIVE,那么需要设置参数remote_login_passwordfile的值为EXCLUSIVE,有一次我检查配置了上述所有配置后,发现都符合,在远程用SQL*PLUS登录后,居然报如下错误

ORA-01017: invalid username/password; logon denied错误,很是纳闷,仔细检查了所有配置后,最后发现居然是服务器B的Guest账号被禁用了(如下所示)

启用了Guest账号,然后在机器A上用sys账号登录,此时又报ORA-01031: insufficient privileges,赶紧给Guest账号添加ora_dba用户组,问题解决了。

时间: 2024-10-28 03:16:34

用SYS本地登录或远程登录引起ORA-01031错误的相关文章

服务器-校园网可以登录,远程登录不了tomcat

问题描述 校园网可以登录,远程登录不了tomcat 用tomcat服务器,校园网可以登录,为什么远程登录不上去,其中我的内外网ip都一样,并且都是固定的 解决方案 tomcat做服务器本来就是只有内网才能访问得到,你用外网肯定失败啊.要不谁都可以攻击你的电脑了不是? 解决方案二: 你的服务器没有在外网上,只能在内网访问,你问问运维 解决方案三: 同意楼上的,极大的可能是你的服务器不在dmz区 解决方案四: 同意楼上,你可以问问. 解决方案五: 外网是不行的?想用外网测试去用花生壳映射一下就可以外

解决SYS本地登录或远程登录引起ORA-01031错误方法

如果数据库实例安装在服务器A上,你用管理员权限Administrator登录后,使用SQL> conn system/manage as sysdba登录 没有问题.但是如果你在服务器A上建立一个etl账号,使它率属于Remote Desktop Users 和Users 组,如下所示: 此时你用sys账号登录数据库时,就会报ORA-01031:insufficient privileges错误,退出etl账号,用管理员登录给etl账号赋予率属于Oracle DBA Group的权限 然后用et

服务器-linux下root用户切换到普通用户执行ssh远程登录失败

问题描述 linux下root用户切换到普通用户执行ssh远程登录失败 这样,我想做一个web一件抓取日志的小程序,后台python调用ssh登录到远程主机执行系统命令抓取符合条件的日志,这个程序集成在一个运行在root下的web站中,然而服务器 设定了root用户不能用ssh远程登录.我想请教是否可能在程序中切换到普通用户登录ssh远程登录其他主机执行ssh命令,然后再切回root...或者是否有其他好的方法来实现这一 功能.(很多台服务器,一次性抓取符合条件的日志) 解决方案 linux下如

sys不能远程登录解决办法

SYSDBA不能远程登录(此处是不是指CRT远程登录) SYSDBA不能远程登录分两种情况: 1:提示的是ORA-01017:用户名密码出错 C:Userskerry>sqlplus "sys/wgods123@gsp as sysdba" SQL*Plus: Release 11.2.0.1.0 Production on 星期五 1月 11 11:08:07 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved.

CISCO路由器TELNET和SSH远程登录的配置实例

一.TELNET远程登录配置 1.配置CISCO路由器上登录账号.口令.账号级别,如下所示,账号名abc.口令为abc123.账号级别为15(最高级别) R1#configure terminal R1(config)#username abc privilege 15 secret abc123 R1(config)#end R1# 2.配置CISCO路由器远程登录认证机制,如下所示,配置路由器本地认证 R1#configure terminal R1(config)#line vty 0 4

远程登录服务器时提示未被授予终端服务器登录权限的问题

在登录服务器时,我们有时会遇到提示"要登录到远程计算机,您必须被授予通过终端服务登录的权限--",默认情况下,我们看到提示应该考虑到的是远程登录时输入的域帐号未被加入到服务器的远程管理组中或本地管理员组中. 但是有时我们也会遇到已经将远程登录时用到的域帐号加入到了需登录服务器的本地管理员组中或远程管理组中,但是依然会提示无法登录,如下图所示: 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/zs/ 之前遇到这

Linux命令之远程登录/无密码登录-ssh,ssh-keygen,ssh-copy-id

SSH是一种安全通道协议,主要用来远程登录.在RHEL 5系统中使用的是OpenSSH服务器由openssh, openssh-server等软件包提供的(默认已经安装),并以将sshd添加为标准的系统服务.使用方法如下: $ ssh host $ ssh username@host $ ssh -p 222 username@host -p:指定访问端口;如果省略该参数,则默认访问SSH服务的默认端口22; 如果是第一次登录对方主机,则系统会出现一下提示: The authenticity o

mysql开启远程登录功能

  有时候建站的时候因为数据库和网站放在不同的IP,这个时候就需要用程序进行mysql的远程连接,而mysql因为安全的因素,默认的时候用户设置的是不能远程连接,只能本地连接,这个时候就需要自己去修改其中的设置.下面讲方法. 进入cmd命令模式. mysql -h localhost-u mysql -p Enter password: ****** 连接数据库. mysql> use mysql; (此DB存放MySQL的各种配置信息) Database changed mysql> sel

Oralce新建数据库、新建远程登录用户全过程

  Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库. 创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户,并且为该用户指定表空间. 关系:一个大的数据中分为几个表空间,创建几个用户然后指定对应的表空间并授权,这样用户就独立操作自己的资源了,每每用户登录进入后,在自己的表空间中新建表啊等等对象,互不干扰. 下面