1、一般使用建表空间、建用户的流程是:

建立表空间;

建立用户角色,赋予权限给用户角色;

建立用户;

赋予用户权限;(把用户角色的权限赋予给用户)

 

这样后,如果删除了  这个用户角色,那么用户的权限也消失了,需要重新建立这个用户角色,并且重新给此用户赋予角色权限才行。

 

2、使用逻辑备份,导出的dmp包,里面包含所使用的表空间的名字;

有时在进行导入操作前,并无检查dmp包表空间的名字,导致在导入到另外的服务器数据库时提示表空间不存在,一般我用2个方法来解决:

   1、直接修改dmp包。在linux 服务器上直接使用vi x.dmp

     通过使用修改名字,全局修改名字

     vi x.dmp

     :%s/TABLESPACE "xxxx"/TABLESPACE "yyyy"/g
     保存退出!
 
   2、由于有时dmp文件很大,打开时十分费时;为了保持新的服务器也是用一样的表空间名字,那么先确认原来使用的表空间名字再建表空间,然后导入。
     导入数据库后,如果想修改表空间的名字,那么可以直接用
     alter tablespace xxxx rename to yyyy;
     进行修改,修改后进行逻辑备份出来的新的dmp 包里面的表空间名字为新的名字。
 
   3、第三个方法好像可以通过在imp导入时是添加index???的参数,来指定导入的表空间来解决,这个我还没试过。