如何在命令行中没有密码的情况下从sqlplus连接到oracle 12c

SHR*_*SHR 5 oracle sqlplus oracle-12c

这似乎是一个奇怪的问题:

如果我有用户demo使用密码 Pass1234 呼叫

连接到 oracle 11g 时,我可以sqlplus在命令行中使用密码运行:在数据库主机上:

C:\> sqlplus demo/Pass1234 
Run Code Online (Sandbox Code Playgroud)

或者远程机器

C:\> sqlplus demo/Pass1234@<ip>:1521/orcl 
Run Code Online (Sandbox Code Playgroud)

我可以这样做而无需在命令行中提供密码并像这样公开它:

C:\> sqlplus demo
Run Code Online (Sandbox Code Playgroud)

然后我得到:

SQL*Plus: Release 11.1.0.7.0 bla bla bla
Copyright (c) bla bla bla
Enter password:  
Run Code Online (Sandbox Code Playgroud)

然后我可以手动输入密码。

连接到 Oracle 12c 时,我可以从任何机器(使用密码)像这样连接:

C:\> sqlplus demo/Pass1234@<ip>:1521/pdborcl
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在不tnsnames.ora编辑和不在命令行中写入密码的情况下连接到 Oracle 12c ?

我还没有弄清楚是否可以从数据库主机上的 sqlplus 连接到 Oracle 12c,而无需提供 IP 或本地主机,并且无需编辑 tnsnames.ora,就像我在 Oracle 11g 中所做的那样?

更重要的是,我可以在不使用完全连接的情况下从远程机器(甚至到 Oracle 11g)执行此操作吗?

(装置手动给用户和在命令行分贝连接和密码,而不是像使用/NOLOG在命令,然后:SQL> connect demo/Pass1234@<ip>:1521/pdborcl

谢谢!

SHR*_*SHR 9

这个答案基于 a1ex07 评论:

鉴于以下细节:

user name: demo
password: Pass1234
ip: 1.2.3.4
listener port: 1521
oracle SID: orcl
pdb service name: pdborcl
Run Code Online (Sandbox Code Playgroud)

以 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

从数据库主机或远程作为 sysdba 连接到 pdb:

  • 手动输入密码: sqlplus sys@\"1.2.3.4:1521/pdborcl\" as sysdba
  • 命令中的密码: sqlplus sys/Pass1234@1.2.3.4:1521/pdborcl as sysdba

从数据库主机或远程连接到 pdb 作为演示(普通用户):

  • 手动输入密码: sqlplus demo@\"1.2.3.4:1521/pdborcl\"
  • 命令中的密码: sqlplus demo/Pass1234@1.2.3.4:1521/pdborcl