【问题标题】:Cannot connect to the new user created on Oracle database 18 XE in Docker无法连接到在 Docker 中的 Oracle 数据库 18 XE 上创建的新用户
【发布时间】:2020-08-25 01:17:00
【问题描述】:

我最近使用 this script 构建了一个 oracle 数据库 18xe 的映像,并使用以下命令创建了一个容器:

$docker run --name myxedb \
-d \
-p 51521:1521 \
-p 55500:5500 \
-e ORACLE_PWD=hr \
-e ORACLE_CHARACTERSET=AL32UTF8 \
oracle/database:18.4.0-xe

然后我使用以下命令登录:

$docker exec -it --user=oracle myxedb bash
$. oraenv
>XE
$sqlplus sys@XEPDB1 as sysdba

然后我使用以下查询在 oracle 数据库上创建了一个用户:

ALTER SESSION SET CONTAINER = XEPDB1;
CREATE USER hra IDENTIFIED BY hr;
GRANT CONNECT TO hra;

但是当我去 sqldeveloper 并尝试连接 hra 用户时,我得到了这个 error, 虽然我可以登录为sys.

P.S:我正在使用 OpenSuse 15.1 跳跃和 docker 19.03.5。

【问题讨论】:

  • 你能把图片内联吗?如果堆栈跟踪发布在这里会更好。

标签: oracle docker oracle-xe oracle18c


【解决方案1】:

您在可插入数据库 (SERVICE_NAME=XEPDB1) 中创建了用户,但您正在登录到容器数据库 (SID=XE)。 SYS 存在于两者中。更改 SQL Developer 连接中的服务名称。

【讨论】:

  • 另外,您创建了用户 HR,但随后将权限授予用户 HRA。 HR != HRA.. 这是一个错字吗,因为您抄录了您认为自己所做的事情,而不是实际复制和粘贴您的会话以向我们展示您真正做了什么?
  • 感谢您的回复,很抱歉我在截屏时犯了这个错误,尽管它与用户 hra 的结果相同。当我将服务名称更改为 XEPDB1 时,我也收到此错误 => imgur.com/lSl9yjp
  • 应该是 service_name,而不是 SID。
猜你喜欢
  • 1970-01-01
  • 2019-08-21
  • 2010-10-16
  • 1970-01-01
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
相关资源
最近更新 更多