使用OCI或SQL*Plus从客户端计算机以SYSDBA的身份连接到Oracle

使用OCI或SQL*Plus从客户端计算机以SYSDBA的身份连接到Oracle,oracle,sqlplus,oracle-call-interface,oracle12c,Oracle,Sqlplus,Oracle Call Interface,Oracle12c,我正在使用Instant Client 12.1.0.2.0,连接到12.1.0.1.0(Linux)服务器,配置为多租户 使用以下任一方法: SQL*Plus OCILogon2 OCIServerAttach+OCISessionBegin(OCI_RDBMS凭据,OCI_默认模式) 我可以使用SYSTEM从客户机连接到服务器上的PDB(使用EZCONNECT,完全没有环境变量)。例如 c:\>sqlplus system@'//host/pdb12c_1.domain.net'

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

使用以下任一方法:

  • SQL*Plus
  • OCILogon2
  • OCIServerAttach+OCISessionBegin(OCI_RDBMS凭据,OCI_默认模式)
我可以使用SYSTEM从客户机连接到服务器上的PDB(使用EZCONNECT,完全没有环境变量)。例如

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
但只要我将ASSYSDBA添加到命令行,它就会失败:

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

我希望能有一些见解。谢谢

是的,我反复检查了一遍,密码输入正确了

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

您使用的是不正确的系统用户。您需要使用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>

如果是由于限制,您将得到不同的错误<代码>无效的用户名/密码错误非常具体,用户名-密码组合错误我在您的评论后再次尝试。如果没有SYSDBA那样的
,它就会工作,如果有它,它就会失败。正如上面所示。因此,我认为您不正确。您是否尝试过以下方法:sqlplus系统作为sysdba@'//host/pdb12c_1.domain.net“这清楚地表明我显示的语法是正确的。不过我试过你的,这就产生了帮助信息。包括
is:{[/][@]|/}[AS{SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYSKM}][EDITION=value]
SYS如果没有您正在使用的SYSOPER/SYSDBA选项,系统将无法连接。使用
SYS
。谢谢。您曾写道,没有SYSDBA/SYSOPER,SYS就无法连接,但这里适用的是,系统无法与SYSDBA/SYSOPER连接。换言之,SYSDBA/SYSOPER只能与SYS一起使用。对的(顺便说一句,当使用SYS作为SYSDBA时,我的OCI应用程序也可以工作。已解决!)这取决于您是否已将
SYSDBA
授予用户,然后您可以将其作为SYSDBA连接。但是,请注意,SYS/SYSDBA是特殊的。它不是通用的。系统不需要SYSDBA,如果您尝试在没有SYSDBA的情况下连接SYS,则无法连接。这就是您的情况,您尝试在没有SYSDBA的情况下登录SYS,但登录被拒绝。您必须为SYS使用SYSDBA。谢谢,为了记录在案,我以SYSDBA的身份尝试了系统,而不是没有SYSDBA的SYS。Ok。如果您能够以SYSDBA身份登录系统,则意味着系统被授予了SYSDBA权限。