在进行数据泵迁移时,通常是按照用户进行导入导出,因此需要确认当前数据库中存在那些非系统用户!
查看数据库中用户状态为 OPEN 的用户:
selectusername,account_status,created,PROFILEfromdba_userswhereaccount_status='OPEN'orderbycreated;
通过上述sql查询出的结果中,根据 created
字段可以筛选掉非系统用户!
查看数据库中的角色:
select*fromdba_roles;
创建用户 SQL:
select'create user '||t.username||' identified by values '||chr(39) ||u.password||chr(39) ||' default tablespace '||t.default_tablespace||' profile '||p.name||' Temporary TABLESPACE '||TEMPORARY_TABLESPACE||';'create_user_withoutpassfromdba_userst, sys.user$u, sys.profname$p, sys.user_astatus_mapmwheret.user_id=u.user#andu.resource$=p.profile#andu.astatus=m.status#andt. usernamein ('需要创建的用户名,用逗号隔开');
用户授权:
select'GRANT connect,resource,unlimited tablespace,DBA to '||username||';'fromdba_userswhereusernamein ('需要创建的用户名,用逗号隔开');
📢 注意:如果是使用expdp,则不需要创建用户和授权!