Oracle Data Pump 工具系列:Data Pump 使用許可權配置詳解

來源:互聯網
上載者:User

一、Data Pump 的概念:
Oracle Data Pump 技術可以非常快速地將一個資料庫的資料與中繼資料遷移到另一個資料庫。
Oracle Data Pump 由三大獨一無二的部分構成:

1. 命令列用戶端:expdp 和 impdp
2. DBMS_DATAPUMP PL/SQL 包(也稱為 Data Pump API)
3. DBMS_METADATA PL/SQL 包(也稱為 Metadata API)

與傳統的基於用戶端的 Export/Import 工具相比,Data Pump 是一種基於伺服器的工具 + 生產力。
Oracle Data Pump 與 Export/Import 的功能並不相容。

Oracle Data Pump 還可以使用 NETWORK_LINK 功能,在無需 dump 檔案的情況下,在兩個資料庫
之間利用網路技術從遠端資料庫遷移資料和中繼資料。

二、Data Pump 工具 + 生產力的安裝與配置

使用者需要一定的許可權才能運行 Data Pump。在 Oracle 10g 或更高版本運行 Export DataPump 或
Import DataPump job 所需的最低許可權要求如下:
- 系統許可權 CREATE SESSION (或 CONNECT 角色) 
- 系統許可權 CREATE TABLE 
- 對象許可權 對某個有效 directory 對象的讀寫權限 (CREATE DIRECTORY privilege with which a valid directory object was created) 
- 對使用者的預設資料表空間需要足夠的資料表空間配額(需要建立 DataPump job 所使用的主抽樣表)。

此外,Data Pump 還需要 EXP_FULL_DATABASE 角色來執行以下任務:
- 運行全庫 Export DataPump 作業 
- 運行傳輸資料表空間 Export DataPump 作業
- 運行帶有 TRACE 參數的 Export DataPump 作業
- 運行匯出其他 schema 的 Export DataPump 作業

注意,上述許可權要求適用於連結資料庫運行 Export DataPump 或 Import DataPump 作業的使用者,而非被匯出或匯入的使用者

這些許可權既可以通過顯式的方式授予也可以通過角色來授予,方法如下:

CONNECT system/manager
CREATE DIRECTORY my_dir AS 'full_pre_existing_directory_path_here';
 GRANT create session, create table TO scott IDENTIFIED BY tiger;
 GRANT read, write ON DIRECTORY my_dir TO scott;
 ALTER USER scott QUOTA unlimited ON users; 
 
或者:

CONNECT system/manager
 CREATE DIRECTORY my_dir AS 'full_pre_existing_directory_path_here>>';
 CREATE ROLE expdp_role;
 GRANT create session, create table TO expdp_role;
 GRANT read, write ON DIRECTORY my_dir TO expdp_role;
 GRANT expdp_role TO scott;
 ALTER USER scott DEFAULT ROLE all;
 ALTER USER scott QUOTA unlimited ON users;

特權使用者:

特權使用者是指具有執行 Export DataPump 作業的 EXP_FULL_DATABASE 角色和執行
 Import DataPump 作業的 IMP_FULL_DATABASE 或者包含這兩種角色的 DBA 角色:
SET lines 80  
COL privilege FOR a40  
SELECT grantee, granted_role, default_role  
FROM dba_role_privs  
WHERE granted_role IN ('DBA', 'EXP_FULL_DATABASE', 'IMP_FULL_DATABASE')  
ORDER BY 1,2; 
 
GRANTEE              GRANTED_ROLE                   DEF 
-------------------- ------------------------------ --- 
DBA                  EXP_FULL_DATABASE              YES 
DBA                  IMP_FULL_DATABASE              YES 
SCOTT                EXP_FULL_DATABASE              YES 
SCOTT                IMP_FULL_DATABASE              YES 
SYS                  DBA                            YES 
SYS                  EXP_FULL_DATABASE              YES 
SYS                  IMP_FULL_DATABASE              YES 
SYSMAN               DBA                            YES 
SYSTEM               DBA                            YES

使用 DataPump LOGFILE 參數可以將進行中、已完成的工作以及遇到的錯誤相關的訊息全部寫入一個記錄檔。
在檢查 Data Pump 問題時應首先查看該記錄檔。

也可以指定未證實公開的 METRICS=y 參數在該記錄檔中記錄額外的對象數量以及所花時間相關的資訊。

記錄檔中報告的錯誤訊息並不意味著 Data Pump 作業執行失敗 。有些訊息報告的只是警告資訊和通知資訊。例如,
有關對象已存在和被跳過的資訊。在出現這種情況時,可以it過調整 IMPDP 目錄參數來重建這些對象或者往這些已
存在的對象附加資料。

與 DataPump job 許可權相關的實用sql指令碼

--查看串連資料庫執行 DataPump job 的使用者是否具有 CREATE SESSION 和 CREATE TABLE 許可權
SET lines 80 pages 50 
COL privilege FOR a40 
SELECT grantee, privilege  
  FROM dba_sys_privs  
 WHERE (grantee IN ('SCOTT', 'PUBLIC')  
        OR grantee IN (SELECT granted_role FROM dba_role_privs  
                        WHERE grantee IN ('SCOTT', 'PUBLIC')))  
   AND privilege IN ('CREATE SESSION', 'CREATE TABLE')  
 ORDER BY 1,2;   

GRANTEE                        PRIVILEGE 
------------------------------ ---------------------------------------- 
SCOTT                          CREATE SESSION 
SCOTT                          CREATE TABLE 

--查看連結資料庫運行 DataPump job 的使用者所授予的角色及其預設角色

SET lines 80 
SELECT grantee, granted_role, default_role  
  FROM dba_role_privs  
 WHERE grantee IN ('SCOTT', 'PUBLIC') ORDER BY 1,2;   

GRANTEE                        GRANTED_ROLE                   DEF 
------------------------------ ------------------------------ --- 
SCOTT                          EXP_FULL_DATABASE              YES 
SCOTT                          IMP_FULL_DATABASE              YES 

查詢串連資料庫運行 DataPump job 的使用者所授予的 directory 許可權

SET lines 100 
COL privilege FOR a10 
COL grantee FOR a20 
COL owner FOR a20 
SELECT p.grantee, p.privilege, p.owner, d.directory_name  
  FROM dba_tab_privs p, dba_directories d  
 WHERE p.table_name=d.directory_name  
   AND (grantee IN ('SCOTT', 'PUBLIC')  
        OR grantee IN (SELECT granted_role FROM dba_role_privs  
                        WHERE grantee IN ('SCOTT', 'PUBLIC')))  
 ORDER BY 4,3,2;   

GRANTEE              PRIVILEGE  OWNER                DIRECTORY_NAME 
-------------------- ---------- -------------------- ---------------------- 
IMP_FULL_DATABASE    READ       SYS                  DATA_PUMP_DIR 
EXP_FULL_DATABASE    READ       SYS                  DATA_PUMP_DIR 
EXP_FULL_DATABASE    WRITE      SYS                  DATA_PUMP_DIR 
IMP_FULL_DATABASE    WRITE      SYS                  DATA_PUMP_DIR 
SCOTT                READ       SYS                  MY_DIR 
SCOTT                WRITE      SYS                  MY_DIR 

--查看串連資料庫運行 DataPump job 的使用者的預設資料表空間

SET lines 80 
SELECT username, default_tablespace  
  FROM dba_users WHERE username IN ('SCOTT');   

USERNAME                       DEFAULT_TABLESPACE 
------------------------------ ------------------------------ 
SCOTT                          USERS 

--查看連結資料庫運行 DataPump job 的使用者的資料表空間配額

SET lines 100 numwidth 12 
SELECT q.username, q.tablespace_name, q.bytes, q.max_bytes  
  FROM dba_ts_quotas q, dba_users u  
 WHERE q.username=u.username AND q.username in ('SCOTT'); 

USERNAME             TABLESPACE_NAME             BYTES    MAX_BYTES 
-------------------- -------------------- ------------ ------------ 

SCOTT                USERS                      393216           -1


轉載請註明出處及原文連結:

http://blog.csdn.net/xiangsir/article/details/8627354

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.