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

时间:2015-10-20 09:29:42

标签: oracle sqlplus oci oracle12c

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

使用:

  • SQL *加
  • OCILogon2
  • OCIServerAttach + OCISessionBegin(OCI_RDBMS凭证,OCI_DEFAULT模式)

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

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:是的,我进行了双倍和三倍检查我正确输入了密码

1 个答案:

答案 0 :(得分:1)

  

c:> sqlplus system @' // host / pdb12c_1.domain.net'作为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>