oracle数据库的管理

Administration of oracle database

我用用户 system 创建表而不是创建另一个用户 user1 ,我给了他所有权限但是当我连接 user1 时我看不到或 select 由 system[=10= 创建的表]

首先,您永远不应该在 SYSSYSTEM 模式中创建任何对象。别管他们,他们 拥有 数据库,而且 - 如果你做错了 ,你可能会破坏数据库。

关于您的问题:“所有权限”是一个相当宽泛的术语。你到底给了 user1 什么?你应该 - 作为 system

grant select on table_created_by_system;

然后,连接为 user1

select * from system.table_created_by_system;

换句话说,您必须在 table 名称之前加上其所有者的名称(在本例中为 system)。另一种选择是创建一个 synonym(public,也许?)然后你就不必使用所有者的名字了。


我建议你完全放弃它。从 system 架构中删除 tables 并在 user1 的架构中重新开始。