* 本文相关环境: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。

(二)口令文件认证

Oracle的密码文件包含了被授予SYSDBA和SYSOPER权限的用户的用户名和密码,如果要使用用户名和密码登录,则把sqlnet.ora文件的AUTHENTICATION_SERVICES=none,或者将这句删除或屏蔽(前面加“#”号)。使用操作系统登录数据库的方式就会失去作用,只有给出正确的用户名和密码才能登录。

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 12月 18 23:01:31 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

请输入用户名:  scott as sysdba      /*以管理员方式登录*/
输入口令: /*输入错误的口令*/
ERROR:
ORA-01031: insufficient privileges 请输入用户名: scott as sysdba /*以管理员方式登录*/
输入口令: /*输入正确的口令*/
ERROR:
ORA-01031: insufficient privileges 请输入用户名: scott /*以normal方式登录*/
输入口令: /*输入正确的口令*/ 连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

原文链接:http://www.cnblogs.com/lijiaman/p/6195523.html

【附:一文一图】

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

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

    * 本文相关环境:Windows 10,64位操作系统:Oracle 11gR2:toad for Oracle12.1 最近在学习Oracle数据库,使用Toad for Oracle来查看数据库的 ...

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

    这是因为在安装Oracle的时候默认是使用了操作系统验证: 数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证:登录方式有两种,一种是在数据库主机直接登录(用os认证 ...

  3. ORACLE数据库找回用户密码

    安装完oracle数据库后,登录时sys,system,scott这几个用户密码输入后都不对,查阅资料后解决 1,cmd下输入sqlplus,之后让你输入用户名,输入这个 "/as sysd ...

  4. oracle 数据库创建用户并授权

    oracle 数据库创建用户并授权 备注: userName 为用户名,123456 为密码 drop user userName cascade; create user userName iden ...

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

    转分类: Linux 一.忘记除SYS.SYSTEM用户之外的用户的登录密码.  用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA;  使用如下语句修改 ...

  6. Oracle 数据库基本操作——用户管理与文件管理

    目录: 1.初始状态 2.登录数据库 3.创建表空间 1)概念 2) 基本表空间 3)表空间管理 4.创建新用户 5.删除用户 6.用户的授权 1)定义 2)授予权限的方法 3)权限分类 4)授权注意 ...

  7. 忘记oracle的sys用户密码怎么修改以及Oracle 11g 默认用户名和密码

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  8. oracle数据库之用户管理

    转载 Oracle创建用户.角色.授权.建表   一.oracle数据库的权限系统分为系统权限与对象权限: 系统权限( database system privilege )可以让用户执行特定的命令集 ...

  9. 忘记oracle的sys用户密码如何修改以及Oracle 11g 默认用户名和密码

    忘记除SYS.SYSTEM用户之外的用户的登录密码 CONN SYS/PASS_WORD AS SYSDBA; --用SYS (或SYSTEM)用户登录 ALTER USER user_name ID ...

随机推荐

  1. unity灯光Lightmapping、LightProbes

    1.为什么要用Lightmapping? 简单来说就是实时灯光计算十分耗时,随着光源越多,计算耗时会倍增.使用Lightmap模拟灯光带来的效果,便不用去计算灯光,会带来性能上的大大提升. 当然一个复 ...

  2. ASP.NET Core [1]:Hosting(笔记)

    参考:http://www.cnblogs.com/RainingNight/p/hosting-in-asp-net-core.html

  3. 易语言.开源(vip视频播放器源码)

    下载链接:https://pan.baidu.com/s/1ta1Ig3LOiOka-kr5xB18kw

  4. PAT——甲级1042:Shuffling Mashine

    终于做到甲级了 就一个感觉....题目是真的看不懂,亏我还是四六级都过了的人....可是看完题愣是一点都不懂是什么意思. 1042 Shuffling Machine (20 point(s)) Sh ...

  5. Linux查看端口被占用情形

    查看某端口的占用情况: lsof -i:<端口号> 例如:lsof -i:8080 netstat -apn|grep <端口号> 例如: netstat -apn | gre ...

  6. 团队Alpha(八)冲刺

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  7. 关于usr/bin/ld: cannot find -lxxx问题总结(Qt编译错误cannot find -lGL)

    决定终结这个问题!(网上要想找到完整的解答实在太难了) http://blog.sciencenet.cn/blog-676535-541444.html 前两天手贱,把虚拟机玩崩溃了,只好重装虚拟机 ...

  8. 【Nescafé 31】杯NOIP模拟赛

    t1 题意:n*m的棋盘上从(1,1)走到(n,m),只能向下或向右,一些格子有老鼠,每个老鼠互不相同,当处于与老鼠有重边的格子时,视为看见了这只老鼠,求到终点看到最少的不同老鼠数. 分析:DP 由于 ...

  9. BZOJ1086 [SCOI2005]王室联邦 【dfs + 贪心】

    题目 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1..n.一些城市之间有道路相连,任意两 ...

  10. reduce实现数组求和

    对于实现数组求和,我们常用的思路是通过for.while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法 第一种: var arr = [1,2,3,4,5,6]; Array.prot ...