在Oracle 12C中解锁HR用户

时间:2017-02-03 19:59:15

标签: oracle database-connection oracle12c

我正在尝试解锁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

我做错了什么以及如何解决这些错误?

2 个答案:

答案 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)
    )
  )