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

发布时间:2020-08-06 06:22:05 作者:vans0927
来源:网络 阅读:555

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

 

使用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即可正常登陆,而不再提示没有权限。

 

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


推荐阅读:
  1. Oracle使用管理员账号用sqlplus登陆失败,提示ERROR
  2. sqlplus出现协议适配器错误

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle 以上

上一篇:Python多进程(multiprocessing)共享变量

下一篇:Lucene用法10个小结

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》