oracle remote_os_authent,【oracle DB安全性】本地认证os_authent_prefix 与 远程认证remote_os_authent...

os_authent_prefix是Oracle用来验证用户尝试连接到server时指定的一个前缀。oracle把该参数的值和操作系统账户名和密码连接起来。当需要连接的时候,Oracle 把带有前缀的操作系统用户名和数据库中Oracle的用户名进行比较。为了和之前的版本兼容,该参数的默认值为OPS$。当然也可以将该参数设为空,这样可以消除给操作系统的账户添加任何的前缀

remote_os_authent是Oracle允许用户通过采用外部验证的方式登录数据库。默认情况下,只允许本机的用户采用外部验证登录到数据库中。当将remote_os_authent这个参数设置为true时,则允许远端用户采用外部验证的方式登录到数据库中。

限制远程数据库验证

1)服务器端修改参数及创建用户

——查看参数remote_os_authent:(默认是false)

SYS@ORA11GR2>show parameterremote

NAMETYPEVALUE

------------------------------------

----------- ------------------------------

remote_dependencies_modestringTIMESTAMP

remote_listenerstring

remote_login_passwordfilestringEXCLUSIVE

remote_os_authentbooleanFALSE

remote_os_rolesbooleanFALSE

result_cache_remote_expirationinteger0

SYS@ORA11GR2>alter systemset remote_os_authent=true scope=spfile;

System altered.

SYS@ORA11GR2>startup force;(使参数生效)

ORA-32004: obsolete or deprecated

parameter(s) specified for RDBMS instance

ORACLE instance started.

Total System Global Area830930944 bytes

Fixed Size2257800 bytes

Variable Size503319672 bytes

Database Buffers322961408 bytes

Redo Buffers2392064 bytes

Database mounted.

Database opened.

SYS@ORA11GR2>show parameter remote_

NAMETYPEVALUE

------------------------------------

----------- ------------------------------

remote_dependencies_modestringTIMESTAMP

remote_listenerstring

remote_login_passwordfilestringEXCLUSIVE

remote_os_authentbooleanTRUE

remote_os_rolesbooleanFALSE

result_cache_remote_expirationinteger0

SYS@ORA11GR2>

——查看参数os_authent_prefix

SYS@ORA11GR2>show parameteros_authent_prefix

NAMETYPEVALUE

------------------------------------ -----------

------------------------------

os_authent_prefixstringops$

——创建用户(用户对应的是远程客户端的)

SYS@ORA11GR2>create userops$wangxuebingidentifiedby externally;

(wangxuebing对应的是本人window下的用户名,因为创建远程登录不必验证密码所以用户名前需加上os_authent_prefix参数对应的值,即用户名为ops$wangxuebing)

User created.

SYS@ORA11GR2>grant connect toops$wangxuebing;

Grant succeeded.

注 : 如 果os_authent_prefix这 个 参 数 不 为 空 , 那 么 , 创 建外 部 验

证 的 用 户时 , 需 要 以os_authent_prefix这个参数的内容开头

2)来到windows客户端,验证远程用户验证

——先查看windows客户端的网络连接别名为100;(已经提前配置好,查看是否畅通)

TqjSFAAAAAElFTkSuQmCC

TNSPING 100=成功

——在在windows下登录到数据库(注意:正常此种登录一定要加用户名/密码,但是因为进行了上述的操作,就是验证远程登录而且不验证用户名及密码)

wGdQtKmDVdScgAAAABJRU5ErkJggg==

远程登录成功(在没有输入账户密码的情况下)

3)回到服务器端, 将remote_os_authent改回默认值false

SYS@ORA11GR2>alter system setremote_os_authent=falsescope=spfile;

System altered.

SYS@ORA11GR2>startup

force;

ORA-32004: obsolete or deprecated

parameter(s) specified for RDBMS instance

ORACLE instance started.

Total System Global Area830930944 bytes

Fixed Size2257800 bytes

Variable Size503319672 bytes

Database Buffers322961408 bytes

Redo Buffers2392064 bytes

Database mounted.

Database opened.

SYS@ORA11GR2>

SYS@ORA11GR2>show parameter remote_os_authent

NAMETYPEVALUE

------------------------------------

----------- ------------------------------

remote_os_authentbooleanFALSE

SYS@ORA11GR2>

4)再回到windows客户端测试连接,已无法连接

(参数remote_os_authent与os_authent_prefix两个值都要满足才可以外部登录无密码)

i94mR4s2Zt+mwAAAABJRU5ErkJggg==

5)删除用户回复原貌

SYS@ORA11GR2>drop userops$wangxuebing;

User dropped.

完成!!!!!!!!!!!!!!!

注意: 1.客户端的操作系统用户也要是oracle,这样才能实现远程操作系统认证.

2. remote_os_authent这个参数开启后,存在很大的安全隐患,远端服务器只要根据数据库中存在的外部用户来创建用户,就可以登陆到数据库中,因此除非 必要,否则不建议开启这个参数!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值