【转载】为什么任何随便输入的账号使用SYSDBA权限都能登陆oracle
其实简单点就是检查一下你的机器有没有一个ora_dba用户组,而且你登陆os的用户是否在这个组里,有的话问题的原因就找到了,下面是转的高手的介绍
本文环境配置:Oracle10gR2,Windows XP
Oracle的用户信息一般来说是保存在数据字典里的,所以常规用户在Oracle数据库没有启动的时候是无法登陆的。但有两类用户例外,这就是具有sysdba或者sysoper权限的用户。Oracle sysdba或者sysoper用户的登陆有两种方式:一是通过OS认证,二是通过密码文件验证。
究竟使用哪一种验证方式以及能否成功登陆取决于三个方面的因素:
1. sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES的设置
2. 参数文件中REMOTE_LOGIN_PASSWORDFILE的设置
3. 密码文件 PWD%sid%.ora
Oracle进行权限验证的大致顺序如下:
1. 根据SQLNET.AUTHENTICATION_SERVICES的值决定是进行os验证还是密码文件验证。
2. 如果是os验证,根据当前用户的用户组判断是否具有sysdba权限。如果os验证失败,则进行密码文件验证。
2. 如果是密码文件验证,REMOTE_LOGIN_PASSWORDFILE的值以及密码文件是否存在决定了验证是否成功。
1. OS 验 证
要启用os验证,就必须在qlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES=(NTS),然后在Windows中建立ora_dba用户组,把相关用户加入到这个组中(e.g., administrator),这样administrator就可以在不用提供用户名和密码(或者提供任意的用户名和密码)的情况下以sysdba身份本地登陆。因为操作系统已经代替Oracle进行了验证。
测试一:ora_dba用户本地登陆
- C:/>sqlplus / as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL>
- C:/>sqlplus wrong_user/wrong_password as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL>
- C:/>sqlplus / as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL>
- C:/>sqlplus wrong_user/wrong_password as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL>
测试二:非ora_dba用户本地登陆
- C:/>sqlplus / as sysdba
- ERROR:
- ORA-01031: insufficient privileges
- Enter user-name:
- C:/>sqlplus wrong_user/wrong_password sysdba
- ERROR:
- ORA-01017: invalid username/password; logon denied
- Enter user-name:
- C:/>sqlplus sys/change_on_install as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL>
- C:/>sqlplus / as sysdba
- ERROR:
- ORA-01031: insufficient privileges
- Enter user-name:
- C:/>sqlplus wrong_user/wrong_password sysdba
- ERROR:
- ORA-01017: invalid username/password; logon denied
- Enter user-name:
- C:/>sqlplus sys/change_on_install as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL>
2. 密码文件验证
密码文件包含了被授予sysdba和sysoper权限的用户的用户名和密码。这是一个加密文件,一般来说存放在%oracle_home%/database目录下,文件名为PWD%sid%.ora。
如果要使用密码文件验证,则把sqlnet.ora改为SQLNET.AUTHENTICATION_SERVICES=none,或者从sqlnet.ora中删除SQLNET.AUTHENTICATION_SERVICES。同上匿名登陆sqlplus会失败,给出用户名和密码就可以成功登陆。
- C:/>sqlplus / as sysdba
- ERROR:
- ORA-01031: insufficient privileges
- Enter user-name:
- C:/>sqlplus sys/change_on_install as sysdba
- Connected to an idle instance.
- idle>
- C:/>sqlplus / as sysdba
- ERROR:
- ORA-01031: insufficient privileges
- Enter user-name:
- C:/>sqlplus sys/change_on_install as sysdba
- Connected to an idle instance.
- idle>
测试一:删除密码文件。使用用户名和密码登陆,失败!
- C:/>sqlplus sys/change_on_install as sysdba
- ERROR:
- ORA-01031: insufficient privileges
- Enter user-name:
- C:/>sqlplus sys/change_on_install as sysdba
- ERROR:
- ORA-01031: insufficient privileges
- Enter user-name:
测试二:恢复密码文件,设置REMOTE_LOGIN_PASSWORDFILE=none。使用用户名和密码登陆,失败!
- SQL> alter system set remote_login_passwordfile=none scope=spfile;
- System altered.
- C:/>sqlplus sys/change_on_install as sysdba
- ERROR:
- ORA-01017: invalid username/password; logon denied
- Enter user-name:
- SQL> alter system set remote_login_passwordfile=none scope=spfile;
- System altered.
- C:/>sqlplus sys/change_on_install as sysdba
- ERROR:
- ORA-01017: invalid username/password; logon denied
- Enter user-name:
测试三:恢复密码文件,设置REMOTE_LOGIN_PASSWORDFILE为EXCLUSIVE或者SHARED。使用用户名和密码登陆,成功!
- SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
- System altered.
- C:/>sqlplus sys/change_on_install as sysdba
- Connected to an idle instance.
- SQL>
- SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
- System altered.
- C:/>sqlplus sys/change_on_install as sysdba
- Connected to an idle instance.
- SQL>
3. 密码文件
查看具有sysdba或者sysoper权限的用户:
- SQL> select * from v$pwfile_users;
- USERNAME SYSDB SYSOP
- ------------------------------ ------- -------
- SYS TRUE TRUE
- SQL> select * from v$pwfile_users;
- USERNAME SYSDB SYSOP
- ------------------------------ ------- -------
- SYS TRUE TRUE
每次使用grant sysdba/sysoper授予新用户特殊权限或是alter user命令修改拥有sysdba/sysoper权限的用户密码的时候,Oracle都会自动的同步密码文件,这样保证在数据库没有打开的情况拥有特殊权限的用户能正常的登陆数据库以进行管理操作。
- SQL> grant sysdba to logicgate;
- Grant succeeded.
- SQL> select * from v$pwfile_users;
- USERNAME SYSDB SYSOP
- ------------------------------- -------- --------
- SYS TRUE TRUE
- LOGICGATE TRUE FALSE
- SQL> grant sysdba to logicgate;
- Grant succeeded.
- SQL> select * from v$pwfile_users;
- USERNAME SYSDB SYSOP
- ------------------------------- -------- --------
- SYS TRUE TRUE
- LOGICGATE TRUE FALSE
使用orapwd命令可以重建密码文件。
- C:/>orapwd
- Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>
- where
- file - name of password file (mandatory),
- password - password for SYS (mandatory),
- entries - maximum number of distinct DBA (optional),
- force - whether to overwrite existing file (optional)
- C:/>orapwd
- Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>
- where
- file - name of password file (mandatory),
- password - password for SYS (mandatory),
- entries - maximum number of distinct DBA (optional),
- force - whether to overwrite existing file (optional)
其中文件名和密码是必需的。entries设置了密码文件可包含的dba用户的最大数目。force定义了是否覆盖当前文件。重建密码文件会清除系统内除了sys用户以外所有sysdba用户的密码。必须使用grant sysdba同步密码文件。
- C:/>orapwd file=%oracle_home%/database/PWDepcit.ora password=temp entries=20 force=y;
- C:/>sqlplus sys/temp as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL> select * from v$pwfile_users;
- USERNAME SYSDB SYSOP
- ------------------------------- -------- --------
- SYS TRUE TRUE
- C:/>orapwd file=%oracle_home%/database/PWDepcit.ora password=temp entries=20 force=y;
- C:/>sqlplus sys/temp as sysdba
- Connected to:
- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the OLAP and Data Mining options
- SQL> select * from v$pwfile_users;
- USERNAME SYSDB SYSOP
- ------------------------------- -------- --------
- SYS TRUE TRUE
【转载】为什么任何随便输入的账号使用SYSDBA权限都能登陆oracle的更多相关文章
- 【转载】 C#检测输入的内容中是否含有中文
在C#开发中,可以结合正则表达式,来检测输入的内容中是否包含中文,Regex类是C#中有关正则表达式处理的相关类,功能强大,我们只需要设置好规则,即可很快检测出输入的字符串内容中是否含有中文信息. R ...
- 【转载】MySql新建账号并分配权限
在服务器的MySQL运维过程中,我们有时会遇到新建MySql账号的情况,要求新建的账号只允许某些特定的数据库操作权限,只能访问到特定的数据库,实现数据库权限的严格管理,以下以MySQL-Front管理 ...
- 转载——分享一个html+js+ashx+easyui+ado.net权限管理系统
EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...
- CentOS学习笔记--账号管理与权限配置
Linux 的账号管理与权限配置 管理员的工作中,相当重要的一环就是『管理账号』啦! 使用者标识符: UID 与 GID 虽然我们登陆 Linux 主机的时候,输入的是我们的账号,但是其实 Linux ...
- mysql创建账号及管理权限
mysql创建账号及管理权限 0.mysql版本8.0.15,服务器版本:RHEL 6.5 1.创建用户名密码 mysql> use mysql; mysql> create user ' ...
- CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)
本文章向大家介绍CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置),主要包括CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)使用实例.应用 ...
- 解决升级WordPress及插件需输入FTP账号的问题
当添加,删除,升级 WordPress 插件或者直接升级 WordPress 的时候,WordPress 总是提示让你输入 FTP 帐号信息,非些烦人. 我们可以在 wp-config.php 中定义 ...
- git托管代码随笔--运用ssh传输,不用每次提交频繁输入github账号密码
遇到问题:在使用git bash的时候 每次git push均要输入账号密码. 问题原因:使用的是http传输,需用ssh传输. 解决方法: 1.设置密钥 ssh-keygen -t rsa -C & ...
- (转载):() { :|:& }; : # <-- 打开终端,输入这个,回车.你看到了什么??
代码::() { :|:& }; : 为什么这个东西会让你的系统死掉???有人执行了然后问我 让我们来分析一下这段代码,我改一下格式,但内容是一样的 代码::() # 定义一个叫“:”的过程 ...
随机推荐
- 六、Prototype 原型设计模式
需求:使用 new 生成实例需要指定类名,在不指定类的情况下生成实例 代码清单: 原型接口 Product: public interface Product extends Cloneable{ v ...
- 使用Fiddler查看APP的请求接口、接口参数和返回值的方法
1.下载Fiddler,然后安装成功后. 2.开启代理的设置 3.查看电脑的ip, 4.建立一个wifi局域网,什么360wifi,猎豹wifi,腾讯wifi都可以,用安装手机接入到这个局域网的wif ...
- WINDOWS防火墙开启后Ping不通
WINDOWS系统由于安全考虑,当开启防火墙时,默认不允许外主机对其进行ping功能,即别的电脑ping不通本机.别的主机ping不通本机是因为本机的防火墙关闭了ICMP回显功能,只要把这回显功能打开 ...
- Android创建和删除桌面快捷方式
有同学方反馈创建快捷方式后,点击快捷方式后不能启动程序或者提示"未安装程序",貌似是新的rom在快捷方式这块做过修改(由于此文是11年5月所出,估计应该是2.0或2.1的rom), ...
- flash Air 在同一个目录下面创建txt,写入字
import flash.filesystem.*; var file:File=new File(File.applicationDirectory.nativePath + '/HelloWorl ...
- CentOS SELinux服务关闭与开启
查看SElinux是否开启 查看是否开启SELinux,如果是未开启则是diabled,enforcing(enforce的分词,正在执行的意思),表明开启 #getenforce 临时关闭S ...
- python爬虫相关基础概念
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.但是php在实现爬虫中支持多线程和多进程方面做得不好. 2.java ...
- spring-mvc.xml 和 application-context.xml的区别
转自:https://www.cnblogs.com/binlin1987/p/7053016.html application-context.xml是全局的,应用于多个serverlet,配合li ...
- python第三方库requests简单介绍
一.发送请求与传递参数 简单demo: import requests r = requests.get(url='http://www.itwhy.org') # 最基本的GET请求 print(r ...
- f5 Seldom used
1.负载均衡算法 2)最快响应速度(Fastest) •优先查看7层请求的连接数,然后查看4层连接数 •需要在virtual server上关联7层的profile,否则与最小连接数相同 •后台服务器 ...