用脖子以上的部位解决问题(1):sqlplus登陆报没有权限错误

由于种种原因,好久没有来这里发表自己的文章了。前段时间遇到一个有趣的问题,为难了我整整一个下午,这里写出来与各位分享。

使用sqlplus工具以sysdba身份本机登陆oracle数据库时,突然遇到了没有权限的问题。当时感觉很蹊跷,本机登陆命令:sqlplus / as sysdba 据我了解是最保险的一种登陆方法咯。怎么会报告没有权限呢。头上有点冒汗。经过了半个下午的摆弄依然无果,现在想起来当时简直是胡来!根本没有从原理入手去推断问题,只是一通胡乱测试,没有结果也是情理之中。冷静下来思考后,终于理清了思路,这种登陆方式是走的操作系统认证,即可排除监听故障影响。验证一下,通过sqlplus sys/xxx as sysdba 命令登陆正常,排除了密码文件异常的可能。那么操作系统认证的必要条件是uid和gid以及用户名组名的正确性,我来用id命令查一下看看,果然oracle用户id和用户名对应正常,可gid和组名却没有对应起来,只显示了gid并未显示组名。这是为什么呢?好奇怪!想想unix系统的gid与组名对应关系从何而来,答案摆在面前/etc/group文件,对!就是他!查看他的权限发现,除了root用户和root组有读权限,other用户上面却没有,这怎么可以呢?证明oracle用户根本读不到该文件的内容!难怪oracle用户下执行id命令不能看到gid对应的组名。将该文件权限修改正确,chmod a+r /etc/group 。再进入oracle用户查看,id命令显示正常。通过sqlplus / as sysdba即可正常登陆,而不再提示没有权限。

至此大功告成!任何事情不从原理推断妄下结论势必不能解决,反而可能把事情搞得更糟糕!

时间: 2024-11-11 09:12:21

用脖子以上的部位解决问题(1):sqlplus登陆报没有权限错误的相关文章

sqlplus 登陆报协议适配器错误

造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个 1.监听服务没有起起来.windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务. 2.database instance没有起起来.windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID. 3.注册表问题.regedit,然后进入HKE

sqlplus/rman登录报权限错误ORA-01031/ORA-04005/0RA-00554

安装Weblogic误操作对Oracle用户属组进行了修改 --本地sqlplus登录报错权限问题??? [[email protected] admin]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat May 5 01:28:39 2018 Copyright (c) 1982, 2013, Oracle. All rights reserved. ERROR:ORA-01031: insufficien

【翻译自mos文章】在10g中,当发生ORA-00020时,sqlplus登陆会报“connected to an idle instance”

在10g中.当发生ORA-00020时,sqlplus登陆会报"connected to an idle instance" 来源于: Sqlplus Logon Reports 'connected to an idle instance' when ORA-20 happens in 10g (文档 ID 1370000.1) 说的比較经典, 不做翻译,直接转帖: APPLIES TO: Oracle Server - Enterprise Edition - Version: 1

sqlplus登录提示:ORA-12162错误

[[email protected] ~]# su - oracle [[email protected] ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.1.0 Production on Tue Apr 22 17:10:52 2014 Copyright (c) 1982, 2009, Oracle.  All rights reserved. ERROR: ORA-12162: TNS:net service name is incor

编辑login.sql进行sqlplus登陆设置

执行SQLPLUS登录到SQL 界面时候,就会自动的加载 $ORACLE_HOME/sqlplus/admin 中的login.sql(若没有则加载glogin.sql) 这里面的东西 是根据自己的爱好设置的,基本设置的代码如下(深入ORACLE体系编程艺术): define _editor=viset serveroutput on size 1000000set trimspool onset long 5000set linesize 100set pagesize 9999column

sqlplus登陆方式

sqlplus有几种登陆方式 比如: 1.C: > sqlplus "/as sysdba" --以操作系统权限认证的oracle sys管理员登陆 2.C: > sqlplus /nolog --不在cmd或者terminal当中暴露密码的登陆方式 SQL> conn /as sysdba & SQL> conn sys/password as sysdba 3.C: > sqlplus scott/tiger --非管理员用户登陆 4.C: &

sqlplus连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0解决

sqlplus连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0解决 sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0 问题描述: 使用sqlplus客户端登录数据库,报错SP2-0642,而使用其它方式plsql或者tnsnames等方式连接数据库均没有问题 [plain] [[email protected] ~

解决 SQLPlus无法登陆oracle,PLSql可以登陆,报错ORA-12560

使用Oracle 11g 64位服务器,安装64位.32位客户端,出现SQLPlus无法连接数据库,PLSql可以连接问题. 网上查了很多,都不能解决问题,在下面提供一种. 环境变量 右击计算机属性-->高级系统设置-->高级-->环境变量-->系统变量-->Path将 E:\app\Administrator\product\11.2.0\dbhome_1\bin 放到E:\app\Administrator\product\11.2.0\dbhome_1\bin的前面重启

sqlplus 登陆使用

select * from dept; input order by dname;  追加文本命令  del  n  删除语句 celar buffer ; 清除缓冲区的命令 conn sys as sysdba  登陆用户 一般只要安装了oracle的服务器端或者客户端,sqlplus都被默认安装.而sqlplusw只是在sqlplus上添加了一个窗体,在其上执行SQL语句与sqlplus完全相同.sqlplus的主要应用场景为查看/设置数据库参数.执行SQL脚本等. 1.利用sqlplus登