【问题标题】:Connect to Oracle as SYSDBA using OCI or SQL*Plus, from client machine从客户端计算机使用 OCI 或 SQL*Plus 作为 SYSDBA 连接到 Oracle
【发布时间】:2016-01-18 21:26:01
【问题描述】:

我正在使用 Instant-Client 12.1.0.2.0,连接到 12.1.0.1.0 (Linux) 服务器,采用多租户配置。

使用任一:

  • SQL*Plus
  • OCILogon2
  • OCIServerAttach + OCISessionBegin(OCI_RDBMS 凭据,OCI_DEFAULT 模式)

我可以使用 SYSTEM(使用 EZCONNECT,根本没有环境变量)从客户端计算机连接到服务器上的 PDB。例如

c:\>sqlplus system@'//host/pdb12c_1.domain.net'

SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 20 11:14:10 2015

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Tue Oct 20 2015 11:10:10 +02:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> quit

但是一旦我将 SYSDBA 添加到命令行,它就会失败:

c:\>sqlplus system@'//host/pdb12c_1.domain.net' as SYSDBA

SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 20 11:14:22 2015

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied

我已修改我的 OCI 应用程序以使用 OCI_SYSDBA 作为 OCISessionBegin 的模式,但它以同样的方式失败。我已经在 SQL*Plus 和我的 OCI 客户端应用程序中尝试了 SYSOPER,但它也以同样的方式失败。

我错过了什么?想要获得 SYSDBA 的连接有什么样的限制?这种模式在客户端机器上是不可能的吗?还是因为我连接的是 PDB 而不是 CDB?

我会很感激一些见解。谢谢。

PS:是的,我仔细检查了我输入的密码是否正确

【问题讨论】:

  • 如果它是由于限制,你会得到一个不同的错误。 invalid username/password 错误很具体,就是用户名密码组合错误
  • 在您发表评论后我又试了一次。没有as SYSDBA,它可以工作,有了它,它就会失败。和上图一模一样。所以我相信你是不正确的。
  • 您是否尝试过以下方法:sqlplus system as sysdba@'//host/pdb12c_1.domain.net'
  • doc 清楚地表明我显示的语法是正确的。我试过你的,这会产生帮助信息。包括<logon> is: {<username>[/<password>][@<connect_identifier>] | / } [AS {SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYSKM}] [EDITION=value]
  • 没有 SYSOPER/SYSDBA 选项,SYS 无法连接 您正在使用SYSTEM。使用SYS

标签: oracle sqlplus oracle-call-interface oracle12c


【解决方案1】:

c:>sqlplus system@'//host/pdb12c_1.domain.net' as SYSDBA

您使用的 SYSTEM 用户不正确。您需要使用 SYS

例如,

C:\Users\lkb>sqlplus sys@pdborcl as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Tue Oct 20 15:11:25 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter password:

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

【讨论】:

  • 谢谢。您写道 SYS 无法连接 没有 SYSDBA/SYSOPER,但这里适用的是 SYSTEM 无法连接 with SYSDBA/SYSOPER。换句话说,SYSDBA/SYSOPER 只能与 SYS 一起使用。正确的? (顺便说一句,我的 OCI 应用程序在使用 SYS 作为 SYSDBA 时也可以工作。已解决!)
  • 这取决于您是否已将SYSDBA 授予用户然后您可以连接它AS SYSDBA。但是,请注意,SYS/SYSDBA 是特殊的。它不是通用的。 SYSTEM 不需要 SYSDBA,如果你尝试在没有 SYSDBA 的情况下连接 SYS,你就不能。这就是您的情况,您尝试在没有 SYSDBA 的情况下登录 SYS,但登录被拒绝。您必须为 SYS 使用 SYSDBA。
  • 谢谢,作为记录,我尝试使用 SYSTEM 作为 SYSDBA,而不是没有 SYSDBA 的 SYS。
  • 好的。如果您能够以 SYSDBA 身份登录 SYSTEM,则意味着 SYSTEM 被授予 SYSDBA 权限。
猜你喜欢
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 2012-05-03
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多