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重建口令文件

orapwd file=D:\oracle10g\database\pwdsid.ora password=newpass

这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下的\database目录下。

这个密码是修改sys用户的密码。除sys其他用户的密码不会改变。修改后重启oracle才能生效。

oracle使用口令文件验证和os验证

时间: 2024-10-04 22:21:37

oracle使用口令文件验证和os验证的相关文章

Oracle Database 口令文件与参数文件管理

创建口令文件 [[email protected] ~]$ orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwking password=oracle entries=5 force=y [[email protected] ~]$ sqlplus / as sysdba SQL> show parameter remote_login_passwordfile NAME                               

Oracle OS认证 口令文件 密码丢失处理

Oracle OS认证 口令文件 密码丢失处理 分类: Oracle Basic Knowledge2009-10-19 14:24 5031人阅读 评论(9) 收藏 举报 oracleos数据库sql远程登录login 一.  OS认证 1.1  OS认证介绍 Oracle安装之后默认情况下是启用了OS认证的,这里提到的OS认证是指服务器端OS认证.OS认证的意思把登录数据库的用户和口令校验放在了操作系统一级.如果以安装Oracle时的用户登录OS,那么此时在登录Oracle数据库时不需要任何

Oracle OS认证和口令文件认证方法

OS认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,注释掉#SQLNET.AUTHENTICATION_SERVICES = (NONE)该行. 2.检查当前OS用户是否属于DBA组. 3.执行sqlplus / as sysdba 登录数据库. 口令文件认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,修改为SQLNET.AUTHENTICATION_S

ORACLE模拟临时文件、日志成员、口令文件丢失情况与恢复【weber出品】

一.临时表空间文件.日志文件和口令文件都属于非关键性文件,因为这些文件丢失后并不会影响到整个数据库的完整性. 但是,当这些文件丢失后我们需要快速的找回这些文件.接下来我将模拟临时表空间文件.日志文件和口令文件丢失的情况. 二.如果属于 TEMP 表空间的临时文件丢失或损坏,则 TEMP 表空间将不可用.例如:在执行需要 TEMP 空间进行排序的 SQL 语句过程中,此问题将声明其为错误. 一般会用到临时表空间的场景有: 索引create或rebuild Order by 或 group by D

Oracle非关键文件恢复,日志成员、临时文件、索引表空间、口令文件(密码文件)

关键性与非关键性 非关键性文件是指数据库和大多数应用程序没有它也能继续运行的文件.例如,如果数据库丢失了一个多路复用重做日志文件,仍可使用其它重做日志文件副本来保持数据库持续运行. 虽然丢失非关键性文件不会导致数据库崩溃,但它会削弱数据库的功能.例如: 丢失索引表空间会导致应用程序和查询的运行速度大幅减慢,或者,如果这些索引用于强制实施约束,则丢失后甚至会导致应用程序无法使用. 丢失联机重做日志组(只要不是当前联机日志组)会导致在 LGWR 下一次尝试写入组时数据库操作被挂起,直到生成新的日志文

NFS网络文件系统服务配置、验证及错误解决

NFS网络文件系统服务配置.验证及错误解决 前期准备: 1.至少准备一台服务器(nfs-server)和一台客户机(nfs-client).老表测试用的服务器端用的系统是ubuntu,客户机用的是CentOS 6.5,所以有些地方操作不一样. 2.给两台测试机都安装NFS服务和rpc服务.(一般安装NFS服务会自动安装rpc) 安装: ubuntu:sudo apt-get install nfs-kernel-server CentOS:yum groupinstall "NFS file s

--关于null在oracle数据库中是否参与计算,进行验证,

--关于null在oracle数据库中是否参与计算,进行验证,with td as (select null id,1 name from dual ),td1 as ( select null id,2 name from dual ) select * from td, td1 where nvl(td.id,'0.00') = '0' select '1'||'0.1' from dual number number -> char select to_char(3333.00,'999,

Oracle 口令文件:即 oracle密码文件

一:文件路径位置 [[email protected] db_1]$ cd $ORACLE_HOME/dbs [[email protected] dbs]$ ls dbsorapwPROD1 hc_orcl.dat initneworcl.ora initorcl.ora lkNEWORCL lkPROD1 orapwneworcl spfileorcl.ora tem.dbf hc_neworcl.dat hc_PROD1.dat init.ora initPROD1.ora lkORCL

[转]Oracle DB 概要文件

1.概要文件和用户 一次只能向用户分配一个概要文件. 概要文件: ? 控制资源消耗量 ? 管理帐户状态和口令失效 注:只有将RESOURCE_LIMIT设置为TRUE,概要文件才能强制执行资源限制. 概要文件是用于限制数据库用法和实例资源的一组已命名的资源限制条件.通过概要文件还可管理帐户状态并对用户的口令进行限制(长度.失效时间等).每个用户都分配有一个概要文件,而且该用户在指定时间只属于一个概要文件.如果在更改用户概要文件时用户已经登录,则所做更改只在用户下一次登录时才生效. DEFAULT