【问题】创建用户,又不前面加C##,就切换到orclpdb中创建了不带C##的aaa,创建好了后又开始赋权限,connect、resource、create session、dba权限都给了,还是登不上;
切换命令:alter session set container=orclpdb;
【解决方法】
alter session set container=cdb$root;
SELECT * FROM ALL_USERS;
alter session set container=orclpdb;
SELECT * FROM ALL_USERS;
两段命令确定用户aaa创建在会话orclpdb中,在tnsnames.ora修改SERVICE_NAME如下,参考https://blog.csdn.net/m0_37857602/article/details/77838867
(SERVICE_NAME = orclpdb)
修改好后,重启数据库TNS监听服务。确定链接正常
tnsping orcl
显示如下表明连接正常
TNS Ping Utility for 64-bit Windows: Version 12.2.0.1.0 - Production on 28-4月 -2021 09:44:38
Copyright (c) 1997, 2016, Oracle. All rights reserved.
已使用的参数文件:
D:\install\oracle\product\12.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb)))
OK (30 毫秒)
接着,按照如下命令进行用户登录
sqlplus / as sysdba;
alter session set container=orclpdb;
conn aaa/123@orcl;
------为啥后面加@orcl不是@orclpdb没搞明白;