oracle使用口令文件验证和os验证
一、Oracle安装之后默认情况下是启用了OS认证的,这里提到的os认证是指服务器端os认证。OS认证的意思把登录数据库的用户和口令校验放在了操作系统一级。如果以安装Oracle时的用户登录OS,那么此时在登录Oracle数据库时不需要任何验证
1. 使用操作系统验证
2个前提必须同时满足
1)os下建立用户ORA_DBA用户组,
然后可以新建立用户或者把原来的用户加入到ORA_DBA组中,然后使用这个用户在安装了数据库的本地机器登陆或者使用安全的远程连接登陆,可以作为sysdba登录,在数据库级不需要提供密码。
2)sqlnet.ora文件中加入
SQLNET.AUTHENTICATION_SERVICES=(NTS)
SQLNET.AUTHENTICATION_SERVICES参数
在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,需要修改时直接用文本编辑器打开修改就行了,对于不同的操作系统SQLNET.AUTHENTICATION_SERVICES的取值会有些不一样,通常我们会用到下面的一些设置值:
- SQLNET.AUTHENTICATION_SERVICES = (ALL)
对Linux系统,支持OS认证和口令文件认证。
对Windows系统,实际实验是不支持此参数,验证失败。
- SQLNET.AUTHENTICATION_SERVICES = (NTS)
此设置值仅用于Windows NT系统,此设置同时支持OS认证和口令文件认证,只有在设置了(NTS)值之后运行在Windows系统上的Oracle才支持OS认证。
- SQLNET.AUTHENTICATION_SERVICES = (NONE)
此设置值在Windows和Linux是作用一样的,指定Oracle只使用口令文件认证。
- 不设置此参数或SQLNET.AUTHENTICATION_SERVICES =
对Linux系统,默认支持OS认证和口令文件认证。
对Windows系统,默认只支持口令文件认证,不支持OS认证。
下列方式都是使用os验证登陆
Sqlplus “/ as sysdba”
Sqlplus “sys/sys as sysdba”
Sqlplus “sys/sdf as sysdba” //sys口令错误
Sqlplus “scott/sdf as sysdba” //scott口令错误
以上登录方式都可以登录到数据库。只要是通过了服务器级别的认证就可以登录到数据库上(必须as sysdba)。不管数据库中是否存在登录的用户名或者密码的对错一律不校验。
此时show user 都是sys
说明;只要在登陆时有/ as sysdba。就使用os验证方式。不管是否是sys用户,或者密码是否正确,这样存在安全隐患。
2. 关闭os验证
1) 把操作系统用户的ORA_DBA组取消或者把当前登录用户从ora_dba组中删除。
2) sqlnet.ora文件SQLNET.AUTHENTICATION_SERVICES= (NONE) 关闭os认证方式
目录E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>
2个条件满足任何一个即可。
二、Oracle的口令文件的作用是存放所有以sysdba或者sysoper权限连接数据库的用户的口令,如果想以sysdba权限远程连接数据库,必须使用口令文件,否则不能连上。
由于sys用户在连接数据库时必须以sysdba or sysoper方式,也就是说sys用户要想连接数据库必须使用口令文件。使用口令文件的好处是即使数据库不处于open状态,依然可以通过口令文件验证来连接数据库。开始安装完oracle,没有给普通用户授予sysdba权限,口令文件中只存放了sys的口令,如果之后把sysdba权限授予了普通用户,那么此时会把普通用户的口令从数据库中读到口令文件中保存下来,当然这时必须要求数据库处于open状态
1、使用口令文件验证
如果当前没有使用口令文件验证。可以采用如下方法开启口令文件验证。
1.建立口令文件
C:\>orapwd file=C:\oracle\ora92\database\pwdtest.ora password=admin entries=5
口令文件名格式
pwd + sid + .ora
必须按照这个格式命名。缺省情况下,windows下口令文件的格式是pwdsid.ora(大小写不敏感)
2.确认参数是否正确
Remote_login_passwordfile=exclusive
通过数据字典v$parameter来查看静态参数Remote_login_passwordfile的值
ex:select name,value from v$parameter where name = 'Remote_login_passwordfile';
如果Remote_login_passwordfile的值不是exclusive那么可以通过alter system来修改初始化参数文件中的值。
Remote_login_passwordfile值保存在初始化参数文件中即spfile中,不是动态参数。故修改该参数的值后需要重启数据库重新加载spfile才能生效。
ex: SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
各参数值的含义:
None: 不使用口令文件验证,如果不使用口令文件验证时,没有用户在ora_dba组中,那么就没有任何用户可以作为sysdba进入数据库了。Oracle数据库不允许远 程SYSDBA/SYSOPER身份登录
Exclusive: 表示实例独占使用口令文件,也就是各自实例使用单独的口令文件
Shared 表示多个实例共享一个口令文件
注:
Shared说明
当remote_login_passwordfile=shared时候,
在C:\oracle\ora92\database目录下仍然生成pwd+sid.ora文件。每个数据库实例使用自己的sys用户和对应的密码,但是不能再加入新的有sysdba权限的用户
如果remote_login_passwordfile=exclusive 而且os中有ora_dba组。那么用户如果作为ora_dba组登陆的话。仍然可以使用os的验证
3.重新启动数据库,sys自动被加入到口令文件中
此时。口令文件中没有任何用户。因为刚建立起来。
通过查询 select * from v$pwfile_users; 可以知道
如果利用grant sysdba to sys; 把sys加入到口令文件。会报错。必须要重启,会自动把sys加入进去
4. 把system用户写入口令文件中
Grant sysdba to system;
授权命令成功后。
select * from v$pwfile_users;
可以看到system已经在口令文件中
注:忘记sys口令的话,3种做法都可以。
1)打开os认证方式,/as sysdba连接进去。 Alter user sys identified by "newPassword";
2)通过删除口令文件.然后用orapwd命令重新建立口令文件来做.但是需要重启数据库
3)如果没有启用OS认证登陆,则需要用orapwd重建口令文件
这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下的\database目录下。
这个密码是修改sys用户的密码。除sys其他用户的密码不会改变。修改后重启oracle才能生效。
oracle使用口令文件验证和os验证的更多相关文章
- Oracle OS认证 口令文件 密码丢失处理
Oracle OS认证 口令文件 密码丢失处理 分类: Oracle Basic Knowledge2009-10-19 14:24 5031人阅读 评论(9) 收藏 举报 oracleos数据库sq ...
- Oracle 物理结构(二) 文件-口令文件
一.口令文件作用 1.口令文件基本介绍 Oracle数据库口令文件存放有超级用户的口令及其他特殊用户的用户名/口令. 口令文件在数据库创建时,自动创建,存放在$ORACLE_HOME/dbs. 此文件 ...
- Oracle OS认证和口令文件认证方法
OS认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN文件夹中)文件里,使用vi编辑,凝视掉#SQLNET.AUTHENTICATION_SERVICES = ...
- ORACLE模拟临时文件、日志成员、口令文件丢失情况与恢复【weber出品】
一.临时表空间文件.日志文件和口令文件都属于非关键性文件,因为这些文件丢失后并不会影响到整个数据库的完整性. 但是,当这些文件丢失后我们需要快速的找回这些文件.接下来我将模拟临时表空间文件.日志文件和 ...
- golang实现文件上传权限验证(超简单)
Go语言创建web server非常简单,部署也很容易,不像IIS.Apache等那么重量级,需要各种依赖.配置.一些功能单一的web 服务,用Go语言开发特别适合.http文件上传下载服务,在很多地 ...
- --关于null在oracle数据库中是否参与计算,进行验证,
--关于null在oracle数据库中是否参与计算,进行验证,with td as (select null id,1 name from dual ),td1 as ( select null id ...
- Oracle 口令文件:即 oracle密码文件
一:文件路径位置 [oracle@localhost db_1]$ cd $ORACLE_HOME/dbs [oracle@localhost dbs]$ ls dbsorapwPROD1 hc_or ...
- java struts2入门学习--基于xml文件的声明式验证
一.知识点总结 后台验证有两种实现方式: 1 手工验证顺序:validateXxx(针对Action中某个业务方法验证)--> validate(针对Action中所有的业务方法验证) 2 声明 ...
- oracle口令文件在windows和linux系统下的命名和位置
分类: Oracle 1.windows系统下 oracle口令文件在:$ORACLE_HOME/database目录下: 命名规则为:PWD$SID.ora 2.linux系统下 oracl ...
随机推荐
- (原)Matlab的svmtrain和svmclassify
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5554551.html 参考网址: http://www.cnblogs.com/zhangchaoya ...
- wdcp/wdlinux 在 UBUNTU/linux 中安装失败原因之创建用户
根本原因在于安装时创建的用户www 使用了和ubuntu已创建的用户,冲突了自然创建不了用户. 你可以修改lanmp.sh脚本中创建www用户时的代码,将1000改为其他数字. 也可以修改当前用户的U ...
- 【2】开发环境的搭建,Ubuntu14.04
这里使用的是Ubuntu14.04 Unity 更新源 首先,将更新源更换为国内更新源,我这里使用的是网易的更新源 sudo gedit /etc/apt/sources.list deb http: ...
- Proud Merchants(POJ 3466 01背包+排序)
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- Obstack是C标准库里面对内存管理的GNU扩展
Obstack是C标准库里面对内存管理的GNU扩展 Obstack介绍 Obstack初始化 在Obstack中申请对象 释放对象 申请growing object 获取Obstack状态 数据对齐 ...
- 如何在WPF程序中使用ArcGIS Engine的控件
原文 http://www.gisall.com/html/47/122747-4038.html WPF(Windows Presentation Foundation)是美国微软公司推出.NET ...
- tomcat j2ee 目录结构
一.TOMCAT的目录结构 /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件 /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和w ...
- UESTC_The Most Wonderful Competition CDOJ 56
The Most Wonderful Competition Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB ...
- 擅长排列的小明 II(找规律)
擅长排列的小明 II 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 小明十分聪明,而且十分擅长排列计算. 有一天小明心血来潮想考考你,他给了你一个正整数n,序列1,2, ...
- telnet查看memcached运行参数说明
在Linux/Windows系统中启动memcached的命令请查看http://weilingfeng98.iteye.com/admin/blogs/1741179 启动完memcached服务器 ...