Oracle创建新用户并将某一用户的表导进来

 一、建立测试账号

  进入sqlplus(以管理员身份)

  sqlplus / as sysdba;

  create user user1 identified by user1;  //创建用户名并指定密码

  授予相应权限

  grant create session to user1;

  grant create table to user1;

  grant unlimited tablespace to user1;

  grant connect to user1;

  grant resource to user1;

  grant dba to user1;

二、导出数据

1,导出老用户数据

  shell 环境下支持exp  imp命令

  exp user_old/user_old_pass file=/tmp/data.dmp 

  将userold的数据到处到了指定目录

2,导出真个数据库的表(需要dba权限)

  exp user_old/user_old_pass file=/tmp/data.dmp full=y

3,导出数据库定义而不导出数据

  exp user_old/user_old_pass file=/tmp/data.dmp full=y row=n

4,导出一个或一组指定用户所属的全部表、索引和其他对象

exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)

 5,导出一个或多个指定表

exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)

三、导入数据

1,数据导入到新用户

  imp user_new/pass_user_new file=/tmp/data.dmp fromuser=user_old touser=user_new

  就将老用户的数据倒进了新用户中了

 2,提示无法导入,需要DBA权限之类

  赋予新用户相应权限

  grant sysdba to user1;

  grant imp_full_database;

  然后登出执行

  imp user_new/pass_user_new file=/tmp/data.dmp full=y;

  即可将不知道用户名的dmp导入到新用户。

3,有时总是提示无DBA权限,但实际上已经赋予了DBA权限,这是可能是这个账户的默认角色有问题

  执行

  ALTER USER user1 DEFAULT ROLE ALL;

  然后再登出执行

  imp user_new/pass_user_new file=/tmp/data.dmp full=y;

  即可。

posted @ 2018-01-20 14:29  光何  阅读(1261)  评论(0编辑  收藏  举报