oracle10g exp可否用一個使用者匯出另一個使用者的某表呢?

wisdomone1發表於2012-06-07
SQL> conn /as sysdba
已連線。

SQL> create user user1 identified by system default tablespace users;

使用者已建立。

SQL> grant resource,connect to user1;

授權成功。


SQL> alter user user1 account unlock;

使用者已更改。

SQL> conn user1/system
已連線。
SQL> create table tables(a int);

表已建立。

SQL> conn /as sysdba
已連線。
SQL> create user user2 identified by system default tablespace users;

使用者已建立。

SQL> grant resource,connect to user2;

授權成功。

SQL> alter user user2 account unlock;

使用者已更改。


C:\Documents and Settings\Administrator>exp userid=user2/system file=c:\exp_othe
r_user_table.dmp wner=user1 tables=tables

Export: Release 10.2.0.3.0 - Production on 星期四 6月 7 09:33:02 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
EXP-00026: 指定了衝突模式    ----注:本義是我想用USER2使用者匯出user1使用者的表tables,猜測owner與tables選項是衝突互斥的
EXP-00000: 匯出終止失敗

C:\Documents and Settings\Administrator>exp userid=system/system file=c:\exp_oth
er_user_table.dmp wner=user1 tables=tables --注:證實owner與tables選項是衝突互斥的,即便用system使用者,仍舊出錯

Export: Release 10.2.0.3.0 - Production on 星期四 6月 7 09:33:30 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
EXP-00026: 指定了衝突模式
EXP-00000: 匯出終止失敗

C:\Documents and Settings\Administrator>exp userid=system/system file=c:\exp_oth
er_user_table.dmp wner=user1 --注:深入證明,發現僅留owner選項,即匯出user1使用者所有物件.

Export: Release 10.2.0.3.0 - Production on 星期四 6月 7 09:35:50 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將匯出指定的使用者...
. 正在匯出 pre-schema 過程物件和操作
. 正在匯出使用者 USER1 的外部函式庫名
. 匯出 PUBLIC 型別同義詞
. 正在匯出專用型別同義詞
. 正在匯出使用者 USER1 的物件型別定義
即將匯出 USER1 的物件...
. 正在匯出資料庫連結
. 正在匯出序號
. 正在匯出簇定義
. 即將匯出 USER1 的表透過常規路徑...
. . 正在匯出表                          TABLES匯出了           0 行
. 正在匯出同義詞
. 正在匯出檢視
. 正在匯出儲存過程
. 正在匯出運算子
. 正在匯出引用完整性約束條件
. 正在匯出觸發器
. 正在匯出索引型別
. 正在匯出點陣圖, 功能性索引和可擴充套件索引
. 正在匯出後期表活動
. 正在匯出實體化檢視
. 正在匯出快照日誌
. 正在匯出作業佇列
. 正在匯出重新整理組和子組
. 正在匯出維
. 正在匯出 post-schema 過程物件和操作
. 正在匯出統計資訊
成功終止匯出, 沒有出現警告。

C:\Documents and Settings\Administrator>exp userid=user2/system file=c:\exp_othe
r_user_table.dmp wner=user1 --結論:用user2想匯出user1的物件,須具有dba許可權

Export: Release 10.2.0.3.0 - Production on 星期四 6月 7 09:36:15 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
EXP-00032: 非 DBA 不能匯出其他使用者
EXP-00000: 匯出終止失敗



C:\Documents and Settings\Administrator>exp userid=user2/system file=c:\exp_othe
r_user_table.dmp  tables=tables --結論:不加選項owner,留選項tables,匯出時會在userid使用者下查詢tables指定的表是否存在.

Export: Release 10.2.0.3.0 - Production on 星期四 6月 7 09:39:03 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將匯出指定的表透過常規路徑...
EXP-00011: USER2.TABLES 不存在 --可以佐證上述結論,它會找user2使用者下面的tables表,事實我們想匯出user1使用者下面的tables表
匯出成功終止, 但出現警告。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-732111/,如需轉載,請註明出處,否則將追究法律責任。

相關文章