oracle的docker容器中默認(rèn)用戶是root,在容器里直接sqlplus sys/sys as sysdba登的時候一直提示ORA-12546:TNS:permission denied。
剛開始以為oracle沒有開啟允許本地登陸,然后就從network/admin/samples/sqlnet.ora復(fù)制到network/admin下,修改sqlnet.authentication_services為
sqlnet.authentication_services=(NTS)
然后重啟容器,進(jìn)容器里登陸還是報(bào)原來的錯,而且甚至于使用navicat登陸報(bào)錯

然后就把sqlnet.ora改回去了。
之后又懷疑是監(jiān)聽問題,然后改了監(jiān)聽配置文件,嘗試stop后start監(jiān)聽時,一直提示權(quán)限問題(抱歉沒截圖),網(wǎng)上查了查,基本都說是
/var/tmp/.oracle和/tmp/.oracle文件的讀寫權(quán)限問題,但即使是授權(quán)給root用戶也沒用。最后在容器內(nèi)使用oracle用戶而非root用戶解決了問題。在容器內(nèi)切換到oracle用戶,然后先配置了環(huán)境變量,包括
ORACLE_SID,完事兒直接登陸sqlplus sys/sys as sysdba還是報(bào)錯,不過跟root用戶不一樣了。這種的可以先sqlplus /nolog,然后再connect sys/sys as sysdba就沒問題。*注:root用戶使用
sqlplus /nolog登陸后再切sys,還是會報(bào)ORA-12546:TNS:permission deniedemm總之問題解決了。但至于為什么會必須使用oracle用戶才可以還不清楚,如果有知道的麻煩解釋一下,感謝(抱拳)