关于DBA_FREE_SPACE和DBA_DATA_FILES找不到的问题

   最近测试人员在测试的时候发现有个文件没有生成,我看了一下是sh的脚本的问题,其中有这么一段

javaeye 写道

cd $TS_DATA_PATH
TEMP_FILE=TSdate +%Y%m%d%H%M%S
sqlplus -s $ORACLE_USER_PASSWD > $TEMP_FILE 2>&1 <<EOF
set pagesize 0;
set linesize 1000;
set feedback off;
set heading off;
WHENEVER OSERROR EXIT FAILUR
WHENEVER SQLERROR EXIT FAILURE
select a.tablespace_name||','||a.file_name||','||to_char(a.bytes)||','||to_char(a.bytes-sum(nvl(b.bytes,0)))||','||a.status
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
group by a.tablespace_name ,a.file_name,a.bytes,a.status
order by a.tablespace_name;
EOF

主要就是从ORACLE数据库拿到表空间的信息; 但是错误报出是:table or view do not exit。

然后我在服务器上用sqlplus 用户名/密码@SERVER_NAME 登陆到数据库,然后用SQL>select * from tab 并没有找到DBA_FREE_FILES 和 DBA_DATA_FILES这2个表。

我想请教的是:这二个表是不是和用户的权限有关系? 如果有的话是不是我使用的这个用户没有这个权限看到这二个表?
问题补充
恩,的确是权限的问题;
问题补充
需要在服务器上面找到oracle用户,然后用SQLPLUS连接,再提升这二个表给这个用户。麻烦。。。。

这两个应该都是DBA权限下可看的view,你得用sys用户去访问才行。 

这两张是数据字典
select * from tab 查不到的
你可以通过select table_name from dict where table_name in('DBA_FREE_FILES','DBA_DATA_FILES')查看

记得要用sys或者拥有select any table权限的用户查