手工迁移用户主要涉及到profile、user、权限等:
SELECTDISTINCTpi.nameFROMsys.profname$piWHEREpi.name!='DEFAULT';
SELECTDBMS_MetaDATA.GET_DDL('PROFILE','XXXXPFNAMEXXXX')FROMDUAL;
2、得到用户脚本
selectdbms_Metadata.get_ddl('USER',username)fromdba_users;
密码可以直接使用密文,即和原来密码一致,如果需要对表空间等调整,可以自行调整脚本。
3、表空间权限脚本
selectdbms_Metadata.get_granted_ddl('TABLESPACE_QUOTA',username)fromdba_userswhereusernamein(selectusernamefromdba_ts_quotas);
4、得到角色的权限(如果有自定义的角色需要之前迁移)
selectdbms_Metadata.get_granted_ddl('ROLE_GRANT',username)fromdba_userswhereusernamein(SELECTgranteefromdba_role_privs);
5、得到系统权限脚本
selectdbms_Metadata.get_granted_ddl('SYSTEM_GRANT',username)fromdba_userswhereusernamein(SELECTgranteefromdba_sys_privs)andusernamenotin('SYS','SYSTEM');
6、得到对象权限脚本
selectdbms_Metadata.get_granted_ddl('OBJECT_GRANT',username)fromdba_userswhereusernamein(SELECTgranteefromdba_tab_privs)andusernamenotin('SYS','SYSTEM'); 原文链接:/oracle/209249.html