select count(*) from USER_OBJECTS; returns 1005
但是,当我们使用 DEV 架构/用户执行以下查询时,会出现 ORA-00942 错误。
select count(*) from HR.USER_OBJECTS
ORA-00942:表或视图不存在
我与 HR 用户建立了连接,并已将USER_OBJECTS的选择授权提供给 DEV 架构。使用以下查询
grant select on USER_OBJECTS To DEV
但是,使用 DEV 架构/用户名执行桌面上的选择人员是可以的。
从HR.PERSON中选择计数(*)
请告知我该怎么做才能完成这项工作? USER_OBJECTS归当前用户所有?
答案 0 :(得分:1)
User_objects是仅限当前登录用户的系统视图。
你需要使用
SELECT count(*) from All_Objects where owner = 'HR'
答案 1 :(得分:1)
视图USER_OBJECTS由用户SYS拥有,并且有一个公共同义词USER_OBJECTS,它指向SYS.USER_OBJECTS ...因此,任何没有模式前缀SYS.USER_OBJECTS的用户都可以使用USER_OBJECTS。 / p>
视图USER_OBJECTS始终显示当前用户的对象。这意味着select count(*) from USER_OBJECTS
的结果可能是HR,1005和SCOTT,20。
您无需授予任何查询视图的权限。任何可以连接到数据库的用户都可以查询此视图。