我为用户赋予了CREATE ANY DIRECTORY 和对目录对象的读写权力,但是在导出数据库的时候,还是提示“需要权限”,上网搜一下,发现还有另外两个权限,如下:
EXPORT FULL DATABASE 
IMPORT FULL DATABASE 
于是我就把这两个权限也赋给了普通用户“qiuyue”,但是执行导出表的时候,还是说“需要权限”,如下所示D:\oracle\product\10.1.0\db_1\BIN>expdp qiuyue/qiuyue directory=mypump dumpfile=full.dmp full=y
Export: Release 10.1.0.2.0 - Production on 星期三, 08 8月, 2012 10:00
Copyright (c) 2003, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-31631: 需要权限
ORA-31631: 需要权限终于把dba权限赋给了用户qiuyue的时候,才可以正常导出数据库。
我就想不通了,权限“EXPORT FULL DATABASE ”不就是关于导出数据库的权限吗?那我给用户赋予这个权限之后,还是不可以导出数据库,而非得使用dba权限才可以呢?
求教,谢谢!

解决方案 »

  1.   

    exp_full_database  
    IMP_FULL_DATABASE 
    赋权限完,查看是否有权限了?
      

  2.   

    因为你指定了full=y,这样除了qiuyue这个schema中的数据还要到处很多系统数据字典中的数据。这些是需要dba角色权限的。
    去掉full=y,没有dba角色权限也可以导出的。
    你可以比较下full=y和不加full=y两种情况下,导出的log文件就会明白。
      

  3.   


    没有dba角色也可以使用full=y的
      

  4.   

    恩,查看过了,有这个权限,但是体现不出来~!必须要用dba
      

  5.   

    恩,查看过了,有这个权限,但是体现不出来~!必须要用dba
      

  6.   

    我看了一下,发现在导出数据库的时候,是把整个数据库都导出来了,而不单单是该用户创建的表。所以,应该需要更大的权限。谢谢啦!
    不过,权限“EXPORT FULL DATABASE ”通过字面意思的理解,好像就是导出所有的数据库吧?这么说来,有这个权利应该是可以完成我的导出数据库的功能的啊?想不通为什么就不可以???