还原了一个Oracle数据库发现表DBA_DATA_FILES 找不到,找了很多网上文章,说是数据库一个Bug,重启就可以了,但是实例情况却不是这样。

在Oracle中执行语句

Select * from DBA_DATA_FILES

报错如下:

ERROR:
ORA-04043: object DBA_DATA_FILES does not exist

我的这个是因为角色权限不对,原来以为只要是有dba权限就可以如下:

grant  dba  to myuser;

以上权限也是不够的,需要添加以下授权就可以了:

grant sysdba myuser;

其实需要查询 DBA_DATA_FILES表时我们使用sys登录 就可以了,如果自建账号需要这个权限就把sysdba给当前用户就行了。