程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle備份數據導入到其他的表空間(只設置默認表空間無效)

Oracle備份數據導入到其他的表空間(只設置默認表空間無效)

編輯:關於Oracle數據庫

       我們在導入一個Oracle備份的數據文件(*.dmp)到另外一個數據庫的用戶下時,如果需要更換表空間,可以采用下幾個辦法。

      假設導出用戶名:EXP_USER 表空間為:EXP_TSPACE

      導入用戶名:IMP_USER 表空間為:IMP_TSPACE

      1、設置導入用戶的默認表空間以及權限。

      a)建表語句如下:

      create user IMP_USER

      Sql代碼

      identified by "密碼"

      default tablespace IMP_TSPACE

      temporary tablespace TEMP(臨時表空間)

      identified by "密碼"

      default tablespace IMP_TSPACE

      temporary tablespace TEMP(臨時表空間)

      b)只是設置表空間,還是解決不了問題。你會發現,在使用imp命令導入時,導入的表還是建立在EXP_TSPACE表空間上。

      原因是:導入的數據庫也存在EXP_TSPACE表空間,同時IMP_SPACE也存在該表空間的使用權限。

      可能原因IMP_USER用戶的權限含有含有unlimited tablespace權限。(角色resource、dba包含此權限)。

      i. 已存在用戶,不改變其他權限

      a) 不改變原有角色或權限,僅去掉無限表空間權限。

      命令:revoke unlimited tablespace from IMP_USER;

      b) 添加對IMP_TSPACE權限。

      命令:alter user qcui quota unlimited on IMP_USER;

      ii. 新建用戶,給予最低權限

      a) 以下是開發用戶最低權限跟角色的參考:

      角色:connect、exp_full_database、imp_full_database

      權限:debug connect session(調試存儲過程使用,非必須)

      a) 命令語句參考:

      Sql代碼

      create user IMP_USER

      identified by "密碼"

      default tablespace IMP_TSPACE

      temporary tablespace TEMP

      profile DEFAULT

      quota unlimited on IMP_TSPACE;

      -- Grant/Revoke role privileges

      grant connect to IMP_USER;

      grant exp_full_database to IMP_USER;

      grant imp_full_database to IMP_USER;

      -- Grant/Revoke system privileges

      grant debug connect session to IMP_USER;

      create user IMP_USER

      identified by "密碼"

      default tablespace IMP_TSPACE

      temporary tablespace TEMP

      profile DEFAULT

      quota unlimited on IMP_TSPACE;

      -- Grant/Revoke role privileges

      grant connect to IMP_USER;

      grant exp_full_database to IMP_USER;

      grant imp_full_database to IMP_USER;

      -- Grant/Revoke system privileges

      grant debug connect session to IMP_USER;

      2、 直接修改dmp文件(不推薦)

      a) 使用UE等文本工具軟件,可打開並查看DMP文件內容。除部分數據或命令是二進制亂碼外,普通的create table、insert語句都是明文。

      b) 批量修改建表語句中的表空間名稱。即:tablespace EXP_TSPACE替換為:tablespace IMP_TSPACE

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved