首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle DB 12c: sqlplus as sysdba导致ORA-01017

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

Stack Overflow用户
提问于 2016-12-01 02:59:10
回答 2查看 10.5K关注 0票数 0

日安。如果我使用sqlplus user/oracle@db,我就可以成功地连接到db。

如果我使用sqlplus user/oracle@db as sysdba,我会得到错误ORA-01017。

但是在服务器端,这个命令可以成功执行。

我的tnsnames.ora:

代码语言:javascript
复制
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之后,我输入了一个密码,也出现了这个错误。在服务器上,这是没有错误的执行。有什么问题吗?

Oracle VirtualBox与Win2008、Oracle 12c

EN

回答 2

Stack Overflow用户

发布于 2016-12-01 03:06:47

只有在被授予权限的情况下,才能使用as sysdba。跑

代码语言:javascript
复制
GRANT SYSDBA TO user;

为了实现这一点。

不可能从远程机器进行sqlplus /@db as sysdba -这将打开数据库到整个世界,在那里每个人都可以使用SYSDBA权限连接,而不需要任何密码!

只允许从本地计算机使用sqlplus /@db as sysdba,因为在本地计算机上您已经(通常)以操作系统用户"oracle“的身份进行了身份验证。

票数 1
EN

Stack Overflow用户

发布于 2016-12-01 18:54:14

完全可以从远程计算机以SYSDBA身份连接,就像您所做的那样:指定一个密码,并且不依赖于操作系统身份验证机制(在这样的远程身份验证过程中不涉及有效的系统身份验证)。

只需要激活密码文件机制(默认情况下是禁用的)。

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

重要提示:只有在启用密码文件并授予用户SYSDBAsysoper权限后,才会将用户添加到密码文件中;即不会自动添加预先存在的用户(!),您必须为他们重新授予SYSDBASYSOPER角色。

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

代码语言:javascript
复制
select * from v$pwfile_users;

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40896126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档