Oracle
如何在可插拔數據庫中使用 / 作為 sysdba?
我正在嘗試進行導出,通常我
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 中修復,或者您可以使用有效的支持契約為您的版本下載一次性更新檔。
只需創建一個使用者並使用其名稱和密碼。