ORACLE口令文件及密码认证

Oracle口令文件中存放sysdba/sysoper用户的用户名及口令,允许用户通过口令文件验证。

本文包括以下四部分:

1、使用orapwd创建口令文件

2、介绍口令文件的三种状态

3、在口令文件中添加用户

4、维护口令文件

5、密码认证

1.使用orapwd创建口令文件

什么时候需要创建口令文件?:口令文件损坏、口令文件丢失、需要修改超级用户口令时

orapwd的语法为:

orapwd file=<filename> password=<password> entries=<users> force=<y/n>

file:口令文件名称。

在Unix/Linux平台上,口令文件名称为orapwORACLE_SID ,存放路径为ORACLE_HOME/dbs;在Windows平台上,口令文件名称为PWDORALCE_SID.ora,存放路径为ORACLE_HOME/database。

 password:sys用户的密码。用sys登陆数据库,如果以alter user命令修改sys用户的口令,会自动更新数据字典和口令文件中sys用户的口令。

注:当remote_login_passwordfile=shared,是不允许修改sys用户密码的。

entries:文件允许存放特权用户的最大数量。

注:oracle口令文件的小大是按存放4个特权用户大小的整数倍创建和扩展的。例如口令文件由系统自动创建时,大小是1536字节,除sys外,可以存放4个特权用户,占用512字节,而其他1024字节,存放sys用户以及其它信息。当entries=5时,被创建的口令文件大小是2048,可以存放8个特权用户,而不是5个特权用户。所以扩展口令文件存放特权用户数时,最好是以4的倍数指定。

force:是否允许覆盖已存在的口令文件,这个参数在10g中才出现的。

2.介绍口令文件的三种状态

口令文件的状态由remote_login_passwordfile参数指定,该参数是静态参数,改变状态后需要重启实例生效。详细格式为:

remote_login_passwordfile=(none)|(exclusive)|(shared)

 none:不使用口令文件

exclusive:使用口令文件,但只能一个数据库实例使用,这是oarcle默认的方式。

shared:使用口令文件,多个数据库实例共享使用,只能识别sys用户。另外这种状态下不允许修改sys用户密码,也不允许添加别的特权用户。

3.在口令文件中添加别的用户

a.设置remote_login_passwordfile=exclusive

b.赋予用户sysdba特权:grant sysdba to username

c.收回用户sysdba特权:revoke sysdba from username

4.维护口令文件

(1)口令文件已满

这时需要重建用户数大的口令文件。具体步骤如下:

   a.查看v$PWFILE_USERS试图中,记录下有哪些特权用户。

    b.删除口令文件,或者在10g中,指定force=y,允许覆盖已存在的口令文件。

   c.建立entries的值比较合理的口令文件。

   d.将原来拥有特权的用户,再次赋予特权,并添加新的特权用户。

(2)删除口令文件

如果不需要口令文件验证用户信息,这时把remote_login_passwordfile的值设置为none,并删除口令文件。这时oracle不允许远程通过sysdba或sysoper身份登陆。

5、密码认证:

什么是DBA认证  具有sysdba----对应的是sys用户-----root, sysoper对应的是 system用户-----权限稍小. 权限的用户就叫DBA权限
Sys权限最大,属于sysdba sysoper两个权限。System只属于sysoper.

身份认证的方式:

    a、使用与操作系统集成的身份认证   用户oracle属于DBA组就具有管理组权限,sqlplus "/as sysdba"就可以直接登录到数据库。

    b、使用oracle数据库的密码文件进行身份认证。

    c、决定密码文件认证还是操作系统认证   参数文件REMOTE_LOGIN_PASSWORDFILE=none| exclusive |shared  

 sql> show parameter REMOTE_LOGIN_PASSWORDFILE

 none 表示不使用密码文件认证,

 exclusinve  默认 表示要进行密码文件认证 自己独占使用  指示只有一个数据库实例可以使用此密码文件。

 只有在此设置下的密码文件可以包含有除INTERNAL/SYS以外的用户信息,即允许将系统权限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户

 shared 表示也要密码文件认证,不同的实例dba用户可以共享密码文件 用于特殊情况下,比如:asm下。 
     指可有多个数据库实例可以使用此密码文件。在此设置下只有INTERNAL/SYS帐号能被密码文件识别,即使文件中存有其他用户的信息,
    也不允许他们以SYSOPER/SYSDBA的权限登录。此设置为缺省值。
    
    sql>alter system set remote_login_passwordfile=shared scope=spfile;

                sql>startup force;

                sql>show parameter pass;

 

d、另外一个文件 $ORACLE_HOME/network/admin/sqlnet.ora  添加下面:

    SQLNET.AUTHENICATION_SERVICES=none | all | nts

 none关闭OS认证,只能用密码文件认证  

 all 用于linux/unix系统,关闭本机密码文件认证,采用操作系统认证,但远程(异机)可以密码文件认证
  
 nts主要用于windows系统

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值