手工迁移用户主要涉及到profile、user、权限等:
1、如果有profile,得到profile的脚本
SELECT DISTINCT pi.name FROM sys.profname$ pi WHERE pi.name != 'DEFAULT';
SELECT DBMS_METADATA.GET_DDL('PROFILE','XXXXPFNAMEXXXX') FROM DUAL;
2、得到用户脚本
select dbms_metadata.get_ddl ('USER', username) from dba_users ;
密码可以直接使用密文,即和原来密码一致,如果需要对表空间等调整,可以自行调整脚本。
3、表空间权限脚本
select dbms_metadata.get_granted_ddl('TABLESPACE_QUOTA',username) from dba_users where username in(select username from
dba_ts_quotas );
4、得到角色的权限(如果有自定义的角色需要之前迁移)
select dbms_metadata.get_granted_ddl ('ROLE_GRANT',username) from dba_users where username in(SELECT grantee from dba_role_privs);
5、得到系统权限脚本
select dbms_metadata.get_granted_ddl ('SYSTEM_GRANT', username) from dba_users where username in(SELECT grantee from
dba_sys_privs ) and username not in ('SYS','SYSTEM');
6、得到对象权限脚本
select dbms_metadata.get_granted_ddl ('OBJECT_GRANT', username) from dba_users where username in(SELECT grantee from
dba_tab_privs) and username not in ('SYS','SYSTEM');
--转自