Oracle

如何在沒有特殊權限的情況下使用 expdp 導出自己的對象?

  • June 2, 2016

根據Oracle 論壇上的這篇文章,expdp 可用於導出您自己的模式,而無需任何特殊權限:

這完全取決於您希望該使用者能夠導出/導入什麼。如果所有的用途是導出/導入它們自己的對象,那麼它們不需要任何提升的權限。如果您希望該使用者能夠導出其他模式擁有的對象,那麼他們將需要 exp_full_database 並且為了導入,他們將需要 imp_full_database。

但是我就是無法讓它工作。需要指定目錄對象,否則 expdp 顯示錯誤: ORA-39145: directory object parameter must be specified and non-null 但創建目錄需要CREATE ANY DIRECTORY係統權限。

那麼如何以普通使用者的身份導出自己的架構?

指定目錄對象的要求只存在於新expdp實用程序中。較舊的exp工具允許指定絕對路徑。

我能夠在exp沒有任何特殊權限且不創建任何目錄對象的情況下使用我的使用者名和密碼進行備份。

儘管 , 已成功expdpexp但仍包含在最新版本的 Oracle 中。

例如,expdp轉儲看起來像:

expdp kshitiz/password@SID directory=DIR01 dumpfile=file.dmp

使用者需要創建DIR01的目錄對像在哪裡:CREATE ANY DIRECTORY

CREATE 
OR 
REPLACE DIRECTORY dbm01 AS '/tmp';

exp將直接接受路徑:

exp kshitiz/password@SID file=/tmp/file.dmp

創建目錄對象和導出/導入是兩個不同的操作。目錄對象歸 SYS 所有。

目錄對象將名稱映射到文件系統上的目錄路徑。DBA 必須確保只有經過批准的使用者才能訪問與目錄路徑關聯的目錄對象。

如果您不是特權使用者,那麼在執行 Data Pump Export 或 Data Pump Import 之前,必須由數據庫管理員 (DBA) 或任何具有CREATE ANY DIRECTORY特權的使用者創建目錄對象。

計劃時尚

使用SCHEMAS參數指定模式導出。這是預設的導出模式。如果你有這個DATAPUMP_EXP_FULL_DATABASE角色,那麼你可以指定一個模式列表,可選地包括模式定義本身以及對這些模式的系統權限授予。如果您沒有該DATAPUMP_EXP_FULL_ DATABASE角色,則只能導出您自己的架構。

數據泵導出模式模式

引用自:https://dba.stackexchange.com/questions/139801