sqlplus sys/sys as sysdba报错ORA-12546:TNS:permission denied

oracle的docker容器中默认用户是root,在容器里直接sqlplus sys/sys as sysdba登的时候一直提示ORA-12546:TNS:permission denied
刚开始以为oracle没有开启允许本地登陆,然后就从network/admin/samples/sqlnet.ora复制到network/admin下,修改sqlnet.authentication_services

sqlnet.authentication_services=(NTS)

然后重启容器,进容器里登陆还是报原来的错,而且甚至于使用navicat登陆报错


然后就把sqlnet.ora改回去了。
之后又怀疑是监听问题,然后改了监听配置文件,尝试stop后start监听时,一直提示权限问题(抱歉没截图),网上查了查,基本都说是/var/tmp/.oracle/tmp/.oracle文件的读写权限问题,但即使是授权给root用户也没用。
最后在容器内使用oracle用户而非root用户解决了问题。在容器内切换到oracle用户,然后先配置了环境变量,包括ORACLE_SID,完事儿直接登陆sqlplus sys/sys as sysdba还是报错,不过跟root用户不一样了。这种的可以先sqlplus /nolog,然后再connect sys/sys as sysdba就没问题。
*注:root用户使用sqlplus /nolog登陆后再切sys,还是会报ORA-12546:TNS:permission denied
emm总之问题解决了。但至于为什么会必须使用oracle用户才可以还不清楚,如果有知道的麻烦解释一下,感谢(抱拳)

你可能感兴趣的:(sqlplus sys/sys as sysdba报错ORA-12546:TNS:permission denied)