我正在尝试解锁HR用户;我已经尽力了,但我无法实现它。
以下是我为实现这一目标而采取的步骤:
第1步:更新了我的tnsname.ora
文件
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
第2步:将容器从CBD$ROOT
切换为PDBORCL
第3步:ALTER SESSION SET CONTAINER = pdborcl;
第4步:ALTER PLUGGABLE DATABASE open;
第5步:ALTER USER hr IDENTIFIED BY hr ACCOUNT unlock;
第6步:conn hr/hr @pdborcl;
直到第5步,我按预期运行良好,但在第6步,我收到此错误:
ORA-01045:hr用户缺少创建会话权限;登录被拒绝
我尝试通过以下方式记录授予权限:
connect sys/password as sysdba;
grant create session to hr
结果:grant succeeded
。
现在再次尝试连接到正在运行的hr模式
conn hr/hr @pdborcl;
我再次收到相同的错误。
有什么可以解释这个?
当我从SQL Developer设置 SID = pdborcl
时,出现此错误:
ORA-12505,TNS:监听器当前不知道连接描述符中给出的SID
我做错了什么以及如何解决这些错误?
答案 0 :(得分:2)
使用sysdba连接后,需要将会话设置为pdb,然后授予HR用户创建会话访问权限。
conn / as sysdba alter session set container = pdborcl; 授予人力资源创建会话; 出口 sqlplus hr / hr @ pdborcl 连接。
答案 1 :(得分:0)
您需要在tnsnames.ora文件中为pdb添加一个条目。
PDBORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl1)
)
)