【问题标题】:Unlock HR user in Oracle 12C在 Oracle 12C 中解锁 HR 用户
【发布时间】:2017-02-03 19:59:15
【问题描述】:

我正在尝试解锁 HR 用户;我已经尝试了所有可能的方法,但我无法实现。

以下是我为实现这一目标而采取的步骤:

第 1 步:更新我的 tnsname.ora 文件

PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdborcl)
    )
  )

第二步:将容器从CBD$ROOT切换到PDBORCL

第三步ALTER SESSION SET CONTAINER = pdborcl;

第四步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:listener 目前不知道连接描述符中给出的 SID

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

【问题讨论】:

  • 您也必须使用服务名称从 SQL Developer 连接,而不是 SID - 在连接对话框中选择其他选项。但是在您从 SQL*Plus 修复错误之前,您将遇到相同的 ORA 问题,所以这是一个附带问题....
  • 我现在已使用服务名称(即 pdborcl)连接,它已连接。但是为什么会这样,连接后我看不到 HR 表。我错过了什么步骤吗?

标签: oracle database-connection oracle12c


【解决方案1】:

使用 sysdba 连接后,您需要将会话设置为 pdb,然后授予 HR 用户创建会话访问权限。

conn / as sysdba 更改会话集容器=pdborcl; 向 HR 授予创建会话; 出口 sqlplus hr/hr@pdborcl 已连接。

【讨论】:

  • 为什么,连接后看不到HR表,这里:sqlplus hr/hr@pdborcl
  • 如果 HR 不包含任何表,那么您将无法看到 HR 拥有的任何表。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    相关资源
    最近更新 更多