本人是在文win7上面的10.2.0.3进行测试的,源数据库分别是9i和10g,数据库为10g时源和目标数据库都是同一个,不同的库道理相同,执行导出/导入操作的用户也是建立数据链路的用户,创建的数据链路是非公共的。导出操作比较简单,但是用处不大,我们完全可以直接连接到数据链路所连接的用户,如果知道该用户口令的话。导入操作中数据链路因为涉及了三个用户(加上remap参数,如果不加,相当于导入到创建数据链路的用户中),容易让人误解,经过测试的结果,本地建立数据链路的用户和数据链路所连接的源数据库中的用户都必须具有exp_full_database 权限,而且建立数据链路的用户还必须具有imp_full_database的权限。以下是数据链路的测试结果:
1. 用SYSTEM 用户创建目录对象.
SQL> create directory db_bak as 'd:\test\dump';
2. 将该目录读写权限赋予调用导入操作的用户
SQL> grant read,write on directory db_bak to test2;
3. 创建数据链路:
14:13:37 test2>create database link abc0 connect to tzgl identified by ok using 'ora10g';
15:36:10 test2> select * from global_name@abc0;
GLOBAL_NAME
--------------------------------------------------------------------------------
ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM
首先测试的是导出操作:
如果数据链路连接的源数据库是9i,则会出错:
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39006: 内部错误
ORA-39065: DISPATCH 中出现意外的主进程异常错误
ORA-00904: "SYS"."KUPM$MCP"."GET_ENDIANNESS": 标识符无效
ORA-39097: 数据泵作业出现意外的错误 -904
这是因为数据链路连接的是9i 9206的数据库,本地是10.2.0.3 ,出现错误,使用参数version=9.2.0.6也不行
C:\Users\lxy>expdp test2/test2 schemas=tzgl network_link=abc0 directory=db_bak dumpfile=dblink logfile=dblink version=9.2.0.6 不成!!!
以下测试源数据库也是10.2.0.3,与目标库同一个库,不同的库道理相同:
首先测试的是EXPDP:
c>expdp test2/test2 schemas=tzgl network_link=abc0 directory=db_bak dumpfile=dblink logfile=dblink
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-31631: 需要权限
ORA-39149: 无法将授权用户链接到非授权用户
检查Oracle的错误手册:
ORA-39149: cannot link privileged user to non-privileged user
原因: 一个做数据导出导入操作的用户具有EXPORT_FULL_DATABASE/IMPORT_FULL_DATABASE的角色权限,指定的数据链路所连接的远程数据库上的用户没有相对应的权限。
动作:指定一个数据链路,其映射的用户与远程数据库上的用户要有一致的权限。
错误描述的比较清楚,不过这个错误很难理解,难道一个权限大的用户不能通过数据库链导出一个权限小的用户。
本地用户要和数据库链路远程连接的用户权限一致,此处本地用户带有DBA权限,结果远程的用户权限太小。可以调整本地,也可以调整链路连接的用户,两者一致即可,不需要授权EXP_FULL_DATABASE/IMP_FULL_DATABASE角色,就可以导出。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7177735/viewspace-713062/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7177735/viewspace-713062/
本文详细介绍了在Oracle环境中,使用数据链路进行导出/导入操作时所需的权限配置,包括导出操作中遇到的问题及解决方法,以及导入操作中权限需求的深入探讨。
1058

被折叠的 条评论
为什么被折叠?



