当我从另一个 table 空间查询时,为什么我在一个 table 空间中创建的 table 不显示?

Why won't my table I created in one tablespace show up when I query it from another tablespace?

两个 tablespaces 在同一个数据库中,所以在 Oracle SQL Developer 中,如果我登录一个 tablespace tb1 我可以看到所有 tables在tb2中。由于权限问题,我在登录 tb1 时无法创建 table tb2.new_table。所以我登录到 tb2 并制作了 tb2.new_table 并且可以在那里查询它。当我重新登录到 tb1 时,我看不到新创建的 tb2.new_table。我只是想知道为什么它没有出现,我在制作新 table 后确实提交了。

我的困惑来自于当我登录到 tb1 时,我能够向 tb2 中的 table 添加一列。有什么想法吗?

您无法登录到 table空间。并且您不会通过其 table 空间来引用 table(table 可以存在于多个 table 空间或不存在 table 空间)。如果您指的是 table tb2.new_table,这意味着 tb2 是架构的名称,而不是 table 空间。表空间与权限无关,它们只是物理数据文件的集合。模式确实会影响权限。

您似乎在 schema2 中创建了一个新的 table,但尚未授予 user1 对该 table 执行任何操作的权限。假设是这种情况,作为 user2 运行 命令

grant select on new_table to user1

然后 user1 应该可以

select * from user2.new_table

如果您希望 user1 能够插入、更新、and/or 删除 new_table 中的数据,您还需要授予这些权限,即

grant insert, update, delete on new_table to user1