* 本文相关环境: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. crontab-用于设置周期性被执行的指令

    一个很好用的工具. 参考文章: [入门] http://baike.baidu.com/view/1229061.htm [进阶] http://blog.csdn.net/tianlesoftwar ...

  2. Python——初识Python

    本篇主要内容: • Python的特点 • Python的种类 • Python的编码 • Python的安装环境推荐 • Python的基础用法:输入输出,算术运算符,逻辑运算符,基本程序结构语法 ...

  3. Linux 文本对比 diff 命令详解(整理)

    diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...

  4. usb host和device的关系-ARM 论坛 - 21ic电子技术论坛

    usb host和device的关系 疑问1:我们通常所用的u盘应该是usb device吧?我想这个不用多说,呵呵. ===============恩.============== 疑问2:我们通常 ...

  5. HDU 3033 组合背包变形 I love sneakers!

    I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...

  6. Mysql入门的10条语句

    1.查看当前服务器下面,有那些库(database)? 答: show databases; 2.如何创建一个数据库? 答 : create database 最后面在写数据库名:分号结束 3.选择数 ...

  7. 【R】多元线性回归

    R中的线性回归函数比较简单,就是lm(),比较复杂的是对线性模型的诊断和调整.这里结合Statistical Learning和杜克大学的Data Analysis and Statistical I ...

  8. hdu 1969 Pie (二分法)

    Pie Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  9. [Atcoder Grand Contest 006 F][AGC006F] Blackout [染色]

    题面 传送门 思路 首先,这个涂黑的方法我们来优化一下模型(毕竟当前这个放到矩形里面,你并看不出来什么规律qwq) 我们令每个行/列编号为一个点,令边(x,y)表示一条从x到y的有向边 那么显然只要有 ...

  10. 重复登录Windows远程桌面-Autoit脚本

    非常抱歉,我先临时把脚本放上来,具体的说明有时间再更新: 都是做成快捷方式,用鼠标点击的操作 #include <AutoItConstants.au3> ; Open mstsc pro ...