【发布时间】:2015-05-04 01:38:07
【问题描述】:
我已将一个用户更改为只能访问两个表空间,
alter user TEMP_USER quota unlimited on TEMP_USER_DAT;
alter user TEMP_USER quota unlimited on TEMP_USER_IDX;
所以当我查找用户表空间时,它只返回上述两个表空间:
select default_tablespace from user_users;
但是,当我以该用户身份登录并检查对象的所有者时:
SELECT owner, object_name, object_type FROM all_objects
where owner = 'THE_OTHER_TEMP_USER';
它返回属于 THE_OTHER_TEMP_USER 的所有表,并且所有这些表都来自一个非常不同的表空间!!
但是,当我以 THE_OTHER_TEMP_USER 身份登录并再次运行上述命令但条件不同时...
SELECT owner, object_name, object_type FROM all_objects
where owner = 'TEMP_USER';
...它什么也不返回。
这种行为的解释是什么?
【问题讨论】:
-
oracle 中的表空间不是访问控制结构。事实上,它不是一个逻辑结构,只是一个物理结构。因此,只要您授予了架构或表的权限,您就可以访问它,无论它位于哪个表空间中。