Oracle数据库任何用户密码都能以sysdba角色登入

* 本文相关环境:Windows 10,64位操作系统;Oracle 11gR2;toad for Oracle12.1

最近在学习Oracle数据库,使用Toad for Oracle来查看数据库的信息,发现在以sysdba角色登录数据库时,无论输入什么密码,均可以连接到数据库,以为是数据库又出故障了,带着疑问,查找资料。发现里面有很多的学问,下面简单记述一下。

Oracle认证用户有两种方式:操作系统认证与口令认证。操作系统认证也叫本地认证。

  • 操作系统认证:Oracle认为操作系统用户是可靠的,那么既然你能登录到操作系统,必然也能登录到数据库;
  • 口令文件认证:Oracle认为操作系统用户是不可靠的,如果要访问数据库,必须再次使用密码认证。

(一)操作系统认证

要使用操作系统认证,需要设置两处:

(1)在sqlnet.ora文件中设置:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

如下图(第8行):

NTS特指的是windows系统。

(2)在windows中建立ora_dba组,然后把需要使用操作系统认证的用户加到这个组中,组的打开方式为:

控制面板->管理工具->计算机管理->本地用户和组->组。打开后我们可以看到相关信息:

点开Ora_dba用户组,可以看到:

这就可以解释为什么我们在使用Toad for Oracle或sqlplus等客户端工具登录数据库时,密码错误仍然可以登入:我们在安装数据库时,采用了默认的安装方式,使用操作系统认证登录到数据库,所以在使用sysdba方式认证登录时,无论密码对错,均可以登录到数据库。这里要注意的一点是,在使用了操作系统用户组ora_dba里面的用户登录才会采用操作系统用户登录,如果用户不在ora_dba里面,

登陆后,可以在 SQL Plus中执行下面语句 select user from dual来查看当前用户:

发现数据库的用户为SYS而不是SCOTT。经过多次测试,发现从CMD以sqlplus / as sysdba登录也是相同的结果。最后发现,无论使用哪个账户,只要以as sysdba登录到数据库,最终数据库的user均为SYS。

(二)口令文件认证

时间: 2024-08-06 07:55:38

Oracle数据库任何用户密码都能以sysdba角色登入的相关文章

任何用户密码都能以sysdba角色登入

这是因为在安装Oracle的时候默认是使用了操作系统验证: 数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证:登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录:需要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE. 安装下面的方法修改之后,可以限制sysdba不用密码就能登录的问题. sqlnet.authentication_s

ORACLE数据库找回用户密码

安装完oracle数据库后,登录时sys,system,scott这几个用户密码输入后都不对,查阅资料后解决 1,cmd下输入sqlplus,之后让你输入用户名,输入这个 "/as sysdba" ,之后输入"alter user (用户名) identified by (密码);" 因为我要用scott这个用户,但是使用刚才sql语句修改scott这个用户时,怎么改都不生效,很奇怪,遂用这个sql语句修改 sys这个用户,修改成功. 2,打开https://loc

忘记初始安装的oracle数据库的用户密码怎么解决

安装了数据库很久了,却在本地没有使用,这是经常发生的事,现在如何来解决这件事呢. 首先进入plus cmd-sqlplus  命令 然后在链接数据库会无奈的发现你所输入的用户名知道怎么写了 可以查询下一般oracle下默认的用户名先: 用户名 / 密码                      登录身份                              说明 sys/change_on_install       SYSDBA 或 SYSOPER        不能以 NORMAL 登录

Oracle数据库修改用户密码

su - oracle sqlplus /nolog connect / as sysdba alter user zabbix(用户名)  identified by zabbix(新密码) 成功后马上登陆发现登陆不上了提示用户名被锁,所以重新进入运行下面代码: alter user myuser account unlock; 原文地址:https://www.cnblogs.com/A121/p/10531758.html

创建oracle数据库,用户、表空间、设置角色权限脚本

/*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace contract_temp tempfile 'D:\oradata\contract_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace contract_data logging datafile 'D:

关于Oracle数据库sys用户登入的解惑

一直有个问题困扰,在window系统安装Oracle后,打开sqlplus,可以直接用conn / as sysdba登入,无需用户名和密码,如图: 然而,我们还可以这样,con sys/sadfa as sysdba,密码随便输入,还是可以登入. 然而,我们还可以这样,用户名和密码随便输入,还是可以登入. 到这里,不了解同学,是不是觉得,orale疯了,这么弱的安全机制.还可以这样玩.其实,这里的原因是这样的. 验证登入数据库有2种机制,1:用户名和密码验证(输入正确的用户名和密码),2:是主

oracle 11g 设置用户密码大小写敏感

11g通过一个参数设置密码大小写敏感,下面来做个试验: C:\Documents and Settings\guogang>sqlplus gg_test/[email protected]_gg SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 8月 4 17:54:19 2014 Copyright (c) 1982, 2005, Oracle.  All rights reserved. 连接到: Oracle Database 11g En

Oracle EBS 初始化用户密码

---修改密码,并且将限制用户下次登录的时候(第一次登录),强制要换一个新的口令: ---此过程可以完全模拟我们在标准用户的Form里面初始化用户的密码的动作! ---最后要说明的是,这个处理过程是通过研究标准创建用户的画面得出来的结果,所以,如果有需要,请放心使用! SELECT last_logon_date,password_date,LAST_UPDATE_DATE,LAST_UPDATE_LOGIN FROM FND_USER WHERE USER_NAME = 'QWR01'; DE

忘记oracle的sys用户密码怎么修改

一.忘记除SYS.SYSTEM用户之外的用户的登录密码. 用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA; 使用如下语句修改用户的密码: ALTER USER user_name IDENTIFIED BY "newpass"; 注意:密码不能全是数字.并且不能是数字开头.否则会出现:ORA-00988: 口令缺失或无效 二.忘记SYS用户,或者是SYSTEM用户的密码. 如果是忘记SYSTEM用户的密码,可以用SYS用户登录.然后用A