在Oracle 12C中解锁HR用户

在Oracle 12C中解锁HR用户,oracle,database-connection,oracle12c,Oracle,Database Connection,Oracle12c,我正在尝试解锁HR用户;我已经试过了所有可能的方法,但没能实现 以下是我为实现这一目标而采取的步骤: 步骤1:更新了我的tnsname.ora文件 PDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl) )

我正在尝试解锁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
打开可插拔数据库

步骤5
更改人力资源账户解锁标识的用户人力资源

步骤6
连接hr/hr@pdborcl

在第5步之前,我让一切都按预期进行,但在第6步,我遇到了以下错误:

ORA-01045:hr用户缺少创建会话权限;拒绝登录

我尝试通过以下方式登录来授予特权:

connect sys/password as sysdba;

grant create session to hr
结果:
授予成功

现在我再次尝试连接到正在运行的hr模式

conn hr/hr @pdborcl;
我又犯了同样的错误

这是什么原因

当我从SQL Developer设置SID=pdborcl时,出现以下错误:

ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID


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

使用sysdba连接后,您需要将会话设置为pdb,然后授予HR user create session访问权限

conn/as系统数据库管理员 alter session set container=pdborcl; 将创建会话授予HR; 出口 sqlplus人力资源/hr@pdborcl
已连接。

您需要为pdb在tnsnames.ora文件中再添加一个条目

PDBORCL1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdborcl1)
    )
  )

您也必须使用服务名称从SQL Developer进行连接,而不是SID-在连接对话框中选择其他选项。但在修复SQL*Plus中的错误之前,您将遇到相同的ORA问题,因此这是一个次要问题……我现在已使用服务名称连接,即pdborcl,它已连接。但为什么呢?连接后,我看不到人力资源表。我是否遗漏了任何步骤?为什么,连接后我无法看到HR表,这里是:sqlplus HR/hr@pdborclifHR不包含任何表,那么您将无法看到HR拥有的任何表。