Oracle中不同用户间数据的导入导出


实验环境:RedHat 4上装oracle 9

    实验目的:将用户jiajia的数据导入到用户tianyu

    实验步骤如下

    1、使用系统用户登陆为用户jiajia创建一个默认表空间名为jiajia

[oracle@shanghai ~]$ sqlplus system/manager@mydb
SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 8月 10 20:10:42 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
 
SQL> create tablespace jiajia datafile '/opt/oracle/oradata/mydb/jiajia.dbf' size 20M uniform size 64k;
 
Tablespace created.


    2、创建用户jiajia并指定默认表空间为jiajia,临时表空间为temp

SQL> create user jiajia identified by jiajia default tablespace jiajia temporary tablespace temp;
 User created.


    3、授予连接,恢复,导入,导出数据库权限给jiajia

SQL> grant connect,resource,imp_full_database,exp_full_database to jiajia;
Grant succeeded.
SQL> quit


    4、使用jiajia连接数据库mydb并创建用于测试的表studytable

[oracle@shanghai ~]$ sqlplus jiajia/jiajia@mydb
SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 8月 10 20:17:13 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> create table studytable
  2  (
  3  xh varchar(10) NOT NULL,
  4  xm varchar(10) NOT NULL,
  5  nl int,
  6  xb char(4) NOT NULL
  7  )
  8  ;
Table created.


    4、插入4条内容到该表中

SQL> insert into studytable values ('1001','aaaa',20,'男');
1 row created.
 
SQL> insert into studytable values ('1002','bbbb',21,'女');
1 row created.
 
SQL> insert into studytable values ('1003','cccc',22,'男');
1 row created.
 
SQL> insert into studytable values ('1004','dddd',24,'女');
1 row created.
 
SQL> commit;
Commit complete.


    5、查看新建的表中内容

SQL> select * from studytable;
 
XH         XM                 NL XB
---------- ---------- ---------- ----
1001       aaaa               20 男
1002       bbbb               21 女
1003       cccc               22 男
1004       dddd               24 女


    6、再次使用系统用户登陆为用户tianyu创建一个默认表空间名为tianyu

[oracle@shanghai ~]$ sqlplus system/manager@mydb
 SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 8月 10 20:25:00 2009
 Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
 
SQL> create tablespace tianyu datafile '/opt/oracle/oradata/mydb/tianyu.dbf' size 20M uniform size 64k;
 Tablespace created.


    7、创建用户用户tianyu并指定默认表空间为tianyu,临时表空间为temp

SQL> create user tianyu identified by tianyu default tablespace tianyu temporary tablespace temp;
 User created.


    8、授予连接,恢复,导出,导入数据库权限给tianyu

SQL> grant connect,resource,imp_full_database,exp_full_database to tianyu;
 Grant succeeded.


    9、撤销tianyu表空间无限配额的权限(针对所有的用户)

SQL> revoke unlimited tablespace from tianyu;
 Revoke succeeded.


    10、更改tianyu用户使用默认表空间tianyu的权限为无限配额

SQL> alter user tianyu default tablespace tianyu quota unlimited on tianyu;
 User altered.
 SQL> exit


    11、使用jiajia导出数据

[oracle@shanghai ~]$ exp jiajia/jiajia@mydb file=backupjiajia.dmp owner=jiajia log=backupjiajia.log
[oracle@shanghai ~]$ ls
archive_log  backupjiajia.dmp  backupjiajia.log  install  rmanbackup


    12、在没导入到 tianyu时,查看发现无法找到jiajia建立的表studytable

[oracle@shanghai ~]$ sqlplus tianyu/tianyu@mydb
SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 8月 10 20:36:22 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> select * from studytable;
select * from studytable
             *
ERROR at line 1:
ORA-00942: table or view does not exist
SQL>


    13、使用imp命令将数据从jiajia那边导入到tianyu这边,成功

[oracle@shanghai ~]$ imp tianyu/tianyu@mydb file=backupjiajia.dmp fromuser=jiajia touser=tianyu log=backuptianyu.log ignore=y
Import: Release 9.2.0.4.0 - Production on 星期一 8月 10 20:33:27 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
 Export file created by EXPORT:V09.02.00 via conventional path
 Warning: the objects were exported by JIAJIA, not by you
 
import done in ZHS16GBK character set and UTF8 NCHAR character set
. . importing table                   "STUDYTABLE"          4 rows imported
Import terminated successfully without warnings.


    14、再来使用tianyu连接数据库查看,发现能查看到studytable表的内容

[oracle@shanghai ~]$ sqlplus tianyu/tianyu@mydb
 
SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 8月 10 20:38:07 2009
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
 
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
 
SQL> select * from studytable;
 
XH         XM                 NL XB
---------- ---------- ---------- ----
1001       aaaa               20 男
1002       bbbb               21 女
1003       cccc               22 男
1004       dddd               24 女
 
SQL>


    最关键的两条语句:

revoke unlimited tablespace from tianyu;
                                    alter user tianyu default tablespace tianyu quota unlimited on tianyu;


    一般这两句会配合使用,第一句是撤销tianyu表空间无限配额的权限,让所有的用户都不能无限制的使用tianyu表空间的配额,第二句是只让tianyu这个用户使用tianyu表空间的无限配额


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3