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 ...
随机推荐
- go语言的学习网站
1)http://www.runoob.com/go/go-data-types.html 2)https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/ ...
- kubeadm部署k8s1.9高可用集群--4部署master节点
部署master节点 kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 本文档介绍部署一 ...
- Codeforces Round #428 (Div. 2) B
B. Game of the Rows(贪心) 题意: 有k种颜色,每种有\(a_i\)个,将这k种颜色放在一个\(n * 8格子里\) 放置规则不能出现两个不同颜色在相邻的格子里,相邻的定义为在同一 ...
- WebStrom Sass 编译配置 windows
第一步: 先安装Ruby下载 一路next 安装完成后打开开始菜单 打开后输入 gem install sass sass -v 出现版本号说明成功 第二部配置webstorm 在webstorm中s ...
- 牛客网暑期ACM多校训练营(第十场)D Rikka with Prefix Sum (数学)
Rikka with Prefix Sum 题意: 给出一个数组a,一开始全为0,现在有三种操作: 1. 1 L R W,让区间[L,R]里面的数全都加上W: 2. 2 将a数组变为其前缀 ...
- [01]关于TDD、BDD和DDD的一些看法
在实际的项目中,我们可能随时面对各种不同的需求,它的各个方面的要素决定了我们所采用的开发模式. 比如,它的复杂度如何?所有的需求是否足够清晰?开发人员对相关的业务是否足够了解?项目的工期是否合理?种种 ...
- bzoj 2159 - Crash 的 文明世界
Description 给定一棵\(n\le 10^5\)的树, 和\(k\le 150\) 求每个点\(x\)的\[S(x) = \sum_{y=1}^n dis(x, y) ^ k\] Analy ...
- 51Nod 1317 相似字符串对
题目链接 分析: 考虑两个串的关系:$A+C=C+B$,我们观察可以发现,$A$和$B$是循环同构的,如果$A=G+H$,那么$B=H+G$,证明略长懒得写了... 我们知道$A$串有$K^N$种,所 ...
- [ CodeVS冲杯之路 ] P1169
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1169/ 感觉这题目好恐怖,莫名其妙乱码一堆就AC了…… 它看上去是两个子问题,实际上可以看成从起点找两条不相交的路径使 ...
- Winform 在DataGrid中签入Combo
背景 最近看了Winform在DataGrid中怎么嵌入Combo,想到平时项目中写到的一些临时小工具,经常用配置参数,有些配置是简单的地址或文本,有些则是类似1代表SQL,2代表Oracle等.于是 ...