非oracle用户sysdba登陆出TNS-12547错误
这个问题mark下,测试机器oracle从12c升级到19c后,非oracle用户 sysdba登陆不上。sqlnet.log里错误是:
sqplus uasa/uasa error
Fatal NI connect error 12547, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/19.5.0/dbhome//bin/oracle)(ARGV0=oracleUA)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)(HOST=testHost)(USER=test))))
VERSION INFORMATION:
TNS for Solaris: Version 19.0.0.0.0 - Production
Oracle Bequeath NT Protocol Adapter for Solaris: Version 19.0.0.0.0 - Production
Version 19.3.0.0.0
Time: 10-DEC-2019 07:46:48
Tracing not turned on.
Tns error struct:
ns main err code: 12547
TNS-12547: TNS:lost contact
ns secondary err code: 12560
nt main err code: 517
TNS-00517: Lost contact
nt secondary err code: 32
nt OS err code: 0
百度说是oracle 少了s权限,
oracle@testHost:~$ ls -ltr product/19.5.0/dbhome/bin/oracle
-rwsr-s--x 1 oracle dba 563263144 Dec 5 19:59 product/19.5.0/dbhome/bin/oracle
一看已经有了s权限啊,在oracle 用户下,sysdba和其他用户登录schema都没有问题,sqlplus是用的oracle server目录下的 /u01/app/oracle/product/19.5.0/dbhome/bin/sqlplus,然后就查各种网站,由于oracle client还是12c的,一度怀疑是client版本不对。
今天重新看了product/19.5.0/dbhome/bin/oracle权限,发现少了r权限,正确的是:
oracle@pad-t4serv-1:~$ ls -ltr product/19.5.0/dbhome/bin/oracle
-rwsr-sr-x 1 oracle dba 563263144 Dec 5 19:59 product/19.5.0/dbhome/bin/oracle
然后试了加:chmod +r product/19.5.0/dbhome/bin/oracle
在非oracle用户下再试就成功登录:
bash-5.0$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 27 02:35:25 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
SQL> quit
所以如果还有这样的问题记得也要添加可读权限。