Oracle DB 12c:sqlplus as sysdba导致ORA-01017

时间:2016-11-30 18:59:10

标签: oracle oracle12c

美好的一天。如果我sqlplus user/oracle@db我已成功连接数据库。

如果我sqlplus user/oracle@db as sysdba我有错误ORA-01017。

但是在服务器上,此命令成功执行。

我的tnsnames.ora:

db =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.175)(PORT = 1521))
    )
    (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = orcl)
    )
  )

我也不能sqlplus /@db as sysdba。在sqlplus user@db as sysdba我输入密码后也出现此错误。在服务器上执行时没有错误。有什么问题?

带有Win2008,Oracle 12c的Oracle VirtualBox

2 个答案:

答案 0 :(得分:1)

只有在获得许可的情况下才能使用as sysdba。运行

GRANT SYSDBA TO user;

为了允许这样做。

远程计算机无法使用

sqlplus /@db as sysdba - 这会将数据库打开到整个世界,每个人都可以在没有任何密码的情况下连接SYSDBA权限!

sqlplus /@db as sysdba仅允许来自本地计算机,因为您已经通过身份验证(通常)作为OS-User“oracle”。

答案 1 :(得分:0)

最终可以像以前一样从远程计算机连接SYSDBA:指定密码,而不依赖于OS身份验证机制(操作系统auth不参与远程身份验证过程中这样做)。

只有,您必须激活密码文件机制(默认情况下禁用)。

为此,请将参数remote_login_passwordfile的值更改为sharedexclusive。如果是shared,它适用于在该计算机上运行的所有数据库,并且只能包含SYS用户(如果它是exclusive,则它可以包含任何用户,并且其范围是目标数据库)。

重要:在启用密码文件之后以及在他们被授予SYSDBA或{之后},用户只会添加到密码文件中{1}}特权;即,预先存在的用户不会被自动添加(!),您必须重新授予sysoperSYSDBA角色。

最后,此视图可让您查看密码文件的逻辑内容

SYSOPER

有关详细信息,请参阅Creating and Maintaining a Password File