Oracle

如何在可插拔數據庫中使用 / 作為 sysdba?

  • July 28, 2021

我正在嘗試進行導出,通常我userid=\"/ as sysdba\"在 Linux 命令行中使用語法(我不知道生產環境中的 sys 密碼。

如何使用可插拔數據庫做到這一點?我嘗試過這樣的事情:userid=\"/ as sysdba@mypdb_oracle_net\"但它不起作用。

expdp userid=\"/ as sysdba@mypdb_oracle_net\" dumpfile=full_%U.exp logfile=full.log directory=teste full=y parallel=4 version=11.2.0

Export: Release 19.0.0.0.0 - Production on Tue Mar 10 11:18:06 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
UDE-00002: invalid username or password

Username:

首先,要從 PDB 導出,您不應該為此使用 SYS。這是一種過度特權。您應該在 PDB 中創建一個使用者並使用該使用者連接到數據庫。您可以使用權限“exp_full_database”來授予必要的權限。

接下來,您必須指定一個連接字元串以直接進入 PDB(通過相關服務)。在您的範例中是“mypdb_oracle_net”。但是,這樣做時,您必須指定 SYS 的密碼。執行此操作時不能使用作業系統身份驗證。

為了解決你的問題,我會做這樣的事情:

SQLPLUS / AS SYSDBA
ALTER SESSION SET CONTAINER=mypdb;
CREATE USER EXPORT_USER IDENTIFIED BY YOUR_PASSWORD;
GRANT CREATE SESSION TO EXPORT_USER;
GRANT exp_full_database TO EXPORT_USER;

EXPDP EXPORT_USER/YOUR_PASSWORD@mypdb_oracle_net dumpfi......

首先,\"/ as sysdba@mypdb_oracle_net\"不會工作。SYSDBA OS 身份驗證將無法通過偵聽器進行。

其次,\"/ as sysdba\"在 19c 中存在缺陷(與早期版本相比),因為一個錯誤:

錯誤 28707931 - 使用作業系統身份驗證執行 IMPDP 會提示輸入密碼(文件 ID 28707931.8)

基本上數據泵將使用上述提示輸入密碼,您可以在其中輸入任何內容並繼續。該錯誤已在 20.1 中修復,或者您可以使用有效的支持契約為您的版本下載一次性更新檔。

只需創建一個使用者並使用其名稱和密碼。

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