创建新的用户XXX,作为导入目标用户
用户已创建。
SQL> grant connect,resource to xxx;
授权成功。
将SCOTT中的表EMP,DEPT导入XXX 用户下
C:\Documents and Settings\Administrator>imp system/owen file=d:\scott_xxx.dmp fromuser=scott touser=xxx tables=(emp,dept)
Import: Release 10.2.0.1.0 - Production on 星期一 1月 30 22:38:37 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
警告: 这些对象由 SCOTT 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SCOTT 的对象导入到 XXX
. . 正在导入表 "DEPT"导入了 4 行
. . 正在导入表 "EMP"导入了 14 行
成功终止导入, 没有出现警告。
SQL> conn xxx/owen
已连接。
SQL> select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
DEPT USERS
EMP USERS
XXX用户的默认表空间是XXX,但表EMP,DEPT却存储在USERS(SCOTT用户的默认表空间),原因是SYS授予XXX的RESOURCE角色中含有UNLIMITED TABLESPACE权限,使得XXX可以在任何表空间中创建对象
SQL> select privilege from dba_sys_privs where grantee='XXX';
PRIVILEGE
----------------------------------------
UNLIMITED TABLESPACE
切换至用户SYS,收回XXX的UNLIMITED TABLESPACE权限revoke unlimited tablespace from xxx,并为XXX用户分配在XXX表空间上的使用空间,由于创建用户时已分配了unlimited,此处不再重新分配。
重新执行导入命令imp system/owen file=d:\scott_xxx.dmp fromuser=scott touser=xxx tables=(emp,dept)
SQL> select table_name,tablespace_name from dba_tables where owner='XXX';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
MANAGER XXX
DEPT XXX
EMP XXX
此时dept,emp存储在了XXX表空间中