无法连接到刚刚在 docker 上在 Oracle 上创建的新用户 (ORA-01017)

Cannot connect to new user just created on oracle on docker (ORA-01017)

我正尝试在 Ubuntu 18 上使用 Oracle 12c 来学习我的工作。

为此,我正在使用 docker-compose 文件,我曾在其他 PC 上创建过它。

version: '2'
services:
 database:
   image: store/oracle/database-enterprise:12.2.0.1
   volumes:
     - ./data:/ORCL # persistent oracle database data.
   ports:
     - 1529:1521
     - 8082:8080
     - 5500:5500

安装后,我可以以系统管理员身份登录,然后在下面输入这些代码来创建用户。

ALTER SESSION SET CONTAINER = ORCLPDB1;
CREATE USER BUS IDENTIFIED BY DEMO_PASS;
GRANT CONNECT TO BUS;

然后,我尝试连接到它。

sqlplus BUS/DEMO_PASS@localhost:1529/ORCLCDB.localdomain

我想像在其他 PC 上一样登录,但我收到的不是这个,而是这个错误。

ORA-01017: invalid username/password; logon denied

您连接到错误的数据库 - ORCLDB.localdomain 是 CONTAINER 数据库的服务。

你做了一个,alter session set container = ORCLPDB1 => 那是你要连接的数据库,所以试试

sqlplus BUS/DEMO_PASS@localhost:1529/ORCLPDB1 

此外,如果您正在为 Oracle 寻找对用户更友好的 CLI,我们会构建 SQLcl

您必须为连接创建用户。

在这里看我的样本:

docker container run -d -h localdomain --name odbc2 -p 1521:1521 -p 5500:5500 -e DB_SID=ORCLCDB -e DB_PDB=ORCLPDB1 -e DB_DOMAIN=localdomain store/oracle/database-enterprise:12.2.0.1-slim

docker exec -it odbc2 bash -c "source /home/oracle/.bashrc; sqlplus /nolog"


connect sys as sysdba;
-- password  'Oradoc_db1'
alter session set "_ORACLE_SCRIPT"=true;
create user dummy identified by dummy;
GRANT CONNECT, RESOURCE, DBA TO dummy;
create table Docker (id int,name varchar2(20));

连接信息:

SID:ORCLCDB
PORT:1521
username: dummy
password: dummy
url: jdbc:oracle:thin:@localhost:1521:ORCLCDB