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。
(二)口令文件认证
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角色登入的更多相关文章
- [Oracle]Oracle数据库任何用户密码都能以sysdba角色登入
* 本文相关环境:Windows 10,64位操作系统:Oracle 11gR2:toad for Oracle12.1 最近在学习Oracle数据库,使用Toad for Oracle来查看数据库的 ...
- 任何用户密码都能以sysdba角色登入
这是因为在安装Oracle的时候默认是使用了操作系统验证: 数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证:登录方式有两种,一种是在数据库主机直接登录(用os认证 ...
- ORACLE数据库找回用户密码
安装完oracle数据库后,登录时sys,system,scott这几个用户密码输入后都不对,查阅资料后解决 1,cmd下输入sqlplus,之后让你输入用户名,输入这个 "/as sysd ...
- oracle 数据库创建用户并授权
oracle 数据库创建用户并授权 备注: userName 为用户名,123456 为密码 drop user userName cascade; create user userName iden ...
- 忘记oracle的sys用户密码怎么修改
转分类: Linux 一.忘记除SYS.SYSTEM用户之外的用户的登录密码. 用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA; 使用如下语句修改 ...
- Oracle 数据库基本操作——用户管理与文件管理
目录: 1.初始状态 2.登录数据库 3.创建表空间 1)概念 2) 基本表空间 3)表空间管理 4.创建新用户 5.删除用户 6.用户的授权 1)定义 2)授予权限的方法 3)权限分类 4)授权注意 ...
- 忘记oracle的sys用户密码怎么修改以及Oracle 11g 默认用户名和密码
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- oracle数据库之用户管理
转载 Oracle创建用户.角色.授权.建表 一.oracle数据库的权限系统分为系统权限与对象权限: 系统权限( database system privilege )可以让用户执行特定的命令集 ...
- 忘记oracle的sys用户密码如何修改以及Oracle 11g 默认用户名和密码
忘记除SYS.SYSTEM用户之外的用户的登录密码 CONN SYS/PASS_WORD AS SYSDBA; --用SYS (或SYSTEM)用户登录 ALTER USER user_name ID ...
随机推荐
- FluentAPI深入
1. HasMaxLenght 设定字段得最大长度: static void Main(string[] args) { using (TestDbContext ctx = new TestDbC ...
- XML转译字符
&(逻辑与) & <(小于) < >(大于) > "(双引号) " '(单引号) ' [/size]
- UTXO是什么?
以易于理解的方式解释了比特币交易中的"UTXO" UTXO 2017年11月1日 让我们看看当你发一点硬币时会发生什么. 比特币交易通过UTXO执行.通过在比特硬币的所有交易中新生 ...
- 【bzoj3894】文理分科 网络流最小割
原文地址:http://www.cnblogs.com/GXZlegend 题目描述 文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠结过) 小P所在的班级要进行文理分科.他的班级可以用 ...
- C#中不用安装Oracle客户端连接Oracle数据库(转)
原文地址:http://www.cnblogs.com/jiangguang/archive/2013/02/19/2916882.html 0.首先,从Oracle网站上下载对应版本的Oracle ...
- [SP10707]COT2 - Count on a tree II
题目大意:有一棵$n$个节点的树,第$i$个点有一个颜色$C_i$,$m$组询问,每次问$x->y$的路径上有多少种颜色 题解:树上莫队,把树按欧拉序展开成一条链,令第$i$个节点第一次出现在序 ...
- Tomcat学习笔记(十三)
服务器组件和服务组件 服务器组件 org.apache.catalina.Server接口的实例表示Catalina的整个servlet引擎,包含了所有的组件.使用一种优雅的方法来启动/关闭整个系统, ...
- 如何修改win10管理员账户
首先按下win+x组合键,如下图所示 在弹出菜单选择运行,如下图所示 在运行框中输入netplwiz后点击确定按钮 将下图中要使用本计算机必须输入用户名和密码前面的勾去掉,点击下方应用按钮 ...
- TCP面试题之HTTP和HTTPS的请求过程
HTTP的请求过程: 1.TCP建立连接后,客户端会发送报文给服务端: 2.服务端接收报文并作出响应: 3.客户端收到响应后解析给用户: HTTPS的请求过程: 1.客户端发送请求到服务端: 2.服务 ...
- Build RPM package from source code
# yum install rpm-build# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz# vim rsync.specNam ...