有关用户外部认证的问题

本文详细介绍了Oracle数据库中普通用户和特权用户的外部认证机制,包括os_authent_prefix和remote_os_authent参数的设置,以及如何通过sqlnet.ora文件启用操作系统认证。同时,讨论了特权用户登录的特殊性,不受remote_login_passwordfile参数影响。文章还涵盖了密码文件的创建、设置与管理,如orapwd命令的用法,以及remote_login_passwordfile参数的不同取值对系统的影响。最后,提到了查询密码文件用户信息的视图v$pwfile_users。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关于普通用户的外部认证

与普通用户外部认证的两个参数:os_authent_prefix和remote_os_authent

os_authent_prefix设置在创建外部用户时的前缀,默认值为:ops$,即当os用户为hp时,我们可以在数据库上创建外部用户为ops$hp

create user ops$hp identified externally;

remote_os_authent:设置是否允许操作系统认证,如果其值为false,则外部认证的用户不能登录数据库。要使用外部认证的话需要把其值设置为true。

使用外部用户登录数据库:sqlplus /或者conn /

二、关于特权用户的外部认证

要使用特权用户的外部认证,需要满足两个条件

1、$oracle_home/network/admin/sqlnet.ota中

  sqlnet.authentication_services=(nts)

2、操作系统用户在dba组中(windows系统上,os用户需要在ora_dba组中)

--特权用户的外部认证不受参数remote_os_authent设置的影响,也不受remote_login_passwordfile设置的影响,只要以上两个条件满足,就可以使用sqlplus / as sysdba或者conn / as sysdba登录。

--要想取消特权用户的外部认证,只要修改以上两项其一即可。比如  sqlnet.authentication_services=(none)或者把os用户从dba组移出。

--取消特权用户的外部认证之后,特权用户登录数据库需要使用密码文件。

 

三、关于密码文件

  密码文件针对特权用户。

  当取消特权用户的外部认证之后,特权用户登录数据库需要使用密码文件。

  1、创建密码文件

    $>orapwd file=$ORACLE_HOME/DBS/PWD$ORACLE_SID.ORA password=pass_word entries=10 ignorecase=n

  说明:file:文件的路径和名称

           password:特权用户的密码

           entries:密码文件允许保存特权用户的数量

           ignorecase:是否验证密码大小,当设置为n时,为验证。

  2、设置参数remote_login_passwordfile

    该参数的取值:none:设置为none时,表示不使用密码文件。当取消特权用户的外部认证,又不使用密码文件时,特权用户无法登陆数据库。

                          exclusive:每一个实例使用一个单独的密码文件。当设置为exclusive时,密码文件不仅保存sys用户,而且只要把sysdba或者sysoper授予其他用户,这些用户

                                         也将保存在密码文件中,这些用户可以使用密码文件登录数据库。

                         shared:数据库中的实例共享这个密码文件。当设置为shared时,oracle将不会往密码文件中写入其他用户信息,而只保存sys用户。

  3、查询v$pwfile_users,该视图显示密码文件中保存的用户信息

 

 

以上仅是本人的一家之言,不知是否正确,如有错误,望指正!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值