Oracle

如何在命令行中不使用密碼從 sqlplus 連接到 oracle 12c

  • March 20, 2019

這似乎是一個奇怪的問題:

如果我有使用者demo使用密碼 Pass1234 呼叫

連接到 oracle 11g 時,我可以sqlplus在命令行中使用密碼執行:在 DB 主機上:

C:\> sqlplus demo/Pass1234 

或遠端機器

C:\> sqlplus demo/Pass1234@<ip>:1521/orcl 

我可以這樣做而無需在命令行中提供密碼並像這樣公開它:

C:\> sqlplus demo

然後我得到:

SQL*Plus: Release 11.1.0.7.0 bla bla bla
Copyright (c) bla bla bla
Enter password:  

然後我可以手動輸入密碼。

連接到 Oracle 12c 時,我可以從任何機器上這樣連接(使用密碼):

C:\> sqlplus demo/Pass1234@<ip>:1521/pdborcl

我的問題是:如何在不tnsnames.ora編輯且不在命令行中寫入密碼的情況下連接到 Oracle 12c?

我還沒有弄清楚是否可以從數據庫主機上的 sqlplus 連接到 Oracle 12c,而無需提供 IP 或本地主機,也無需編輯 tnsnames.ora,就像我在 Oracle 11g 中可以做的那樣?

更重要的是,我可以在不使用完全連接的情況下從遠端機器(甚至是 Oracle 11g)這樣做嗎?

(意味著在命令行和密碼中手動給使用者和數據庫連接,不像/NOLOG在命令中使用然後SQL> connect demo/Pass1234@<ip>:1521/pdborcl:)

謝謝!

這個答案基於 a1ex07 評論:

給出以下細節:

user name: demo
password: Pass1234
ip: 1.2.3.4
listener port: 1521
oracle SID: orcl
pdb service name: pdborcl

以 sysdba 身份從數據庫主機連接到核心數據庫:

  • 無需密碼:sqlplus / as sysdba
  • 手動密碼:sqlplus sys as sysdba
  • 命令中的密碼: sqlplus sys/Pass1234 as sysdba

從數據庫主機或遠端作為 sysdba 連接到核心數據庫:

  • 手動密碼: sqlplus sys@\"1.2.3.4:1521/orcl\" as sysdba
  • 命令中的密碼:sqlplus sys/Pass1234@1.2.3.4:1521/orcl as sysdba

從 db 主機或遠端作為 sysdba 連接到 pdb:

  • 手動密碼: sqlplus sys@\"1.2.3.4:1521/pdborcl\" as sysdba
  • 命令中的密碼:sqlplus sys/Pass1234@1.2.3.4:1521/pdborcl as sysdba

從 db 主機或遠端連接到 pdb 作為展示(普通使用者):

  • 手動密碼: sqlplus demo@\"1.2.3.4:1521/pdborcl\"
  • 命令中的密碼:sqlplus demo/Pass1234@1.2.3.4:1521/pdborcl

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