无法连接到 Docker 中在 Oracle 数据库 18 XE 上创建的新用户

Cannot connect to the new user created on Oracle database 18 XE in Docker

我最近使用 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, though I can log in as sys.

P.S:我正在使用 OpenSuse 15.1 leap 和 docker 19.03.5.

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