我需要重新创建以使用expdp / impdp克隆数据库。 我从源数据库执行完全导出,重新创建一个空数据库并执行完全导入。 这个过程很顺利。
我的问题: Expdp不会导出数据字典对象的授权。 所以我的新数据库中有很多编译错误。
你知道怎么做吗?
ps:我在两个数据库上都没事。
我的导出命令是
expdp '"/ as sysdba"' DIRECTORY=expDir FULL=Y file=full.dbf log=full.log flashback_time=systimestamp
我的导入命令是:
impdp '"/ as sysdba"' DIRECTORY=expDir FILE=full.dbf FULL=Y LOG=import.full.log partition_options=merge
答案 0 :(得分:0)
Grant
时, imported
才会为object
。这意味着,实际授予的对象也应该是exported
。
例如,
如果user A granted to user B
,那么,为了获得导入的授权,您必须export/import user A too
,而不仅仅是用户B.当我说用户时,我指的是其架构中的各个对象。
答案 1 :(得分:0)
您的命令中缺少grants=y
标记。
答案 2 :(得分:0)
我终于可以用程序dbms_metadata.get_granted_ddl来解决我的问题了。 我可以在sql文件中导出grant并将其导入我的新数据库