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

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

创新互联专业为企业提供相城网站建设、相城做网站、相城网站设计、相城网站制作等企业网站建设、网页设计与制作、相城企业网站模板建站服务,10多年相城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

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

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:用脖子以上的部位解决问题(1):sqlplus登陆报没有权限错误-创新互联
转载来源:http://scyanting.com/article/deoisc.html