我对一般的关系 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`;
但我收到消息:
无效的普通用户或角色名称
我还读到我应该使用类似的东西c##fred
,它确实有效,但是(a)我真的不知道这意味着什么,并且(b)该语句GRANT connect, resource, create sessions TO c##printsdb;
给了我“缺少或无效特权”的信息,所以我没有进一步先。
在 Docker 容器中,我不知道我是否可以访问一些在线教程假定的 SQL*Plus。
如何创建和使用模式,或者包含表集合所需的任何东西?
正确-只要您“说”Oracle-ese。
容器数据库是您拥有的唯一“真实”Oracle 数据库实例。
其中的“可插拔数据库”本质上是“类固醇上的表空间”,但具有更好的安全性,现在可以保证彼此之间的隔离。
对于大多数正常操作,您应该完全忽略容器数据库。
只需在其中使用/a Pluggable Database。
连接到可插入数据库,您的语句将完全按照您的预期工作。