如何创建新的 Oracle 模式?

Man*_*ngo 3 schema oracle oracle-xe docker oracle-18c

我对关系 DBMS 非常熟悉,但对 Oracle 不熟悉。我在 Docker 内部运行 Oracle 18c XE(在 MacOS 上)。我使用第三方客户端(MacOS 上的 SQLPro Studio)连接到它。现在我想开始。

如果这是 MySQL,我可以发出CREATE DATABASE whatever; USE whatever;并继续处理这些表。与 Microsoft SQL Server 相同,与 PostgreSQL 类似。我还可以创建一个额外的模式来保持更好的组织。

我认为 Oracle XE 只为您提供一个数据库,我想创建一个合适的模式。此时我在海上。我认为我需要创建一个与模式关联的新用户。

我也知道不同的 RDBMS 对什么是数据库或模式有不同的想法,所以我不确定这是否是正确的定义或解决方案。

我在客户端中创建新用户或新架构都没有成功。

我试过了:

CREATE USER fred IDENTIFIED BY 'h3art0fg0ld`;
Run Code Online (Sandbox Code Playgroud)

但我收到消息:

无效的通用用户名或角色名

我还读到我应该使用类似的东西c##fred,它确实有效,但是 (a) 我真的不知道这意味着什么和 (b) 声明GRANT connect, resource, create sessions TO c##printsdb;给了我“缺少或无效特权”的消息,所以我没有进一步先。

在 Docker 容器中,我不知道我是否可以访问 SQL*Plus,这是一些在线教程所假定的。

如何创建和使用架构,或包含表集合所需的任何内容?

Phi*_* W. 7

我认为 Oracle XE 只给你一个数据库

正确 - 只要你“说”Oracle-ese。

容器数据库是您拥有的唯一“真正的”Oracle 数据库实例。

该“可插拔数据库”内,它本质上是“类固醇的表空间”,但有很多更好的安全性,现在保证从每一个其他每个人的隔离。

对于大多数正常操作,您应该完全忽略容器数据库。
只需使用其中的/a Pluggable Database。

如何创建和使用架构,或包含表集合所需的任何内容?

CREATE USER fred IDENTIFIED BY '********';

连接到可插拔数据库,您的语句将完全按照您的预期工作。