ORACLE数据库服务器导出DMP格式提示没有权限访问解决解决办法

在oracle数据库中,如果数据需要导出为DMP格式,使用PLSQL是无法完成的,需要通过数据库服务器进行导出。

操作方式如下:

1、登录数据库服务器

2、切换数据库用户
在这里插入图片描述
3、执行需要导出的表数据的命令

以表APPLSYS.FND_ID_FLEX_SEGMENTS为例

exp gl/gl file=/data03/bakdmp/test.dmp log=/data03/bakdmp/test.log tables=APPLSYS.FND_ID_FLEX_SEGMENTS

命令解释:

exp:导出(导入命令为imp)

gl/gl:用户名和秘密
file=/data03/bakdmp/test.dmp:导出的文件名和路径
log=/data03/bakdmp/test.log:导出的日志名称和路径
tables=APPLSYS.FND_ID_FLEX_SEGMENTS:需要导出的表的数据
执行后提示:EXP-00009: no privilege to export APPLSYS’s table FND_ID_FLEX_SEGMENTS(没有导出表的权限)
在这里插入图片描述
原因是用户没有导出数据库数据的权限角色:EXP_FULL_DATABASE;
在这里插入图片描述
所以,首先对该用户赋予EXP_FULL_DATABASE角色:

alter user 此处填用户名 default role EXP_FULL_DATABASE;

该用户赋予EXP_FULL_DATABASE角色后查询如下:
在这里插入图片描述
赋予EXP_FULL_DATABASE角色后再数据库导出DMP格式文件依然报错,提示没有权限,原因是因为导出角色权限EXP_FULL_DATABASE默认值是NO。

解决办法如下:

执行一下命令:

alter user 此处填用户名 default role all;

命令解读:给该用户已有的所有角色权限默认启用。

执行后查询如下:
在这里插入图片描述
4、再次执行导出命令
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38696286/article/details/125975861