免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3588 | 回复: 7
打印 上一主题 下一主题

[数据库] Oracle通过操作系统验证时os_autent_prefix值为空时,不安全因素处在了哪里? [复制链接]

论坛徽章:
1
天蝎座
日期:2014-10-18 18:48:57
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-16 22:40 |只看该作者 |倒序浏览
实验环境: oracle11gR2

问题: 通过操作系统验证进行登陆数据库。

情况一: os_authent_prefix=ops$

        第一步:>create user ops$hr identified externally;
                        >grant create session to hr;
        第二步:#useradd hr
                        ----设置hr的环境便量---
                        $sqlplus /

这是情况一,很明显,当用户通过sqlplus / 方式进行登陆是,先是在数据库中找ops$hr,如果存在,且验证方式为externally,则通过。

问题是如果:os_authent_prefix='' //空


        第一步:>create user hr identified externally;
                        >grant create session to hr;
        第二步:#useradd hr
                        ----设置hr的环境便量---
                        $sqlplus /
第二种情况验证过程是:先在数据库中找hr用户,如果存在此用户,而且验证方式是externally,那么通过。如果用户存在,但是验证方式
不是externally,而是密码验证。那么也不会通过啊。

就算碰巧,操作系统中存在和数据库中同名的用户,但是如果此用户的验证方式不是externally,那么也不能验证通过啊?

不知道我的理解有没有问题? 有人说如果os_authent_prefix=''时,操作系统中存在和数据库中同名的用户,就存在安全隐患?
不太明白。这种不安全出在哪里? 请高手举例说说明一下。

论坛徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午马
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
2 [报告]
发表于 2014-08-17 11:05 |只看该作者
如果os_authent_prefix的值为空,那么操作系统用户与数据库用户相同的话,而且又支持外表验证的话,那么此操作系统有用户就可以登录数据库,如果此数据库用户具有DBA权限,是不是具有安全隐患?

论坛徽章:
1
天蝎座
日期:2014-10-18 18:48:57
3 [报告]
发表于 2014-08-17 15:49 |只看该作者
我想明白了, os_authent_prefix=ops$目的是数据库中创建的没有ops$前缀的用户具有外部认证时,恰好操作系统有同名用户,那么此时就可登陆数据库了。

那又有一个问题了。例如: create user hr identified externally;

                                    hr可以通过操作系统认证登陆数据库系统,但是你创建的时候没有加ops$但是os_authent_prefix="ops$",那么岂不是没法认证通过了??回复 2# www_xylove


   

论坛徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午马
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
4 [报告]
发表于 2014-08-17 20:26 |只看该作者
是的

论坛徽章:
1
天蝎座
日期:2014-10-18 18:48:57
5 [报告]
发表于 2014-08-17 20:54 |只看该作者
那这就是说,os_authent_prefix限制了别人的同时,也限制了自己啊。例如,限制了操作系统和数据库系统同名的用户通过操作系统认证,但这种限制,也同时限制了用户自己通过操作系统认证啊!!!
因为限制的这种情况是:创建一个hr用户externally(这是前提条件),os_authent_prefix='ops$',我们创建hr用户是没有加ops$. 这样如果操作系统有一个hr用户, 就不能通过externally认证登陆系统,这是我们os_autent_prefix=‘ops$’的目的。
但是同时,如果我们自己hr, 想通过externally认证登陆系统的话,也被限制了,因为创建时没有加ops$。 而认证时会加上ops$,我的理解对不对????  
如果我理解的对,那这样的用户岂不是没有存在的意义啊! 我们创建一个externally认证的用户, 却没有加ops$, 这样极限值了别人,也限制了自己,别人登不了,自己也登不了。那为什么要创建这种用户,externally认真模式,自己却无法验证登陆!!回复 4#= www_xylove


   

论坛徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午马
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
6 [报告]
发表于 2014-08-17 23:23 |只看该作者
oracle并不建议使用外表验证的方式登陆数据库,所以,我建议楼主不要太纠结于此了,我从事oracle这么多年,还没有看见用户有使用外部验证方式登陆数据库。

论坛徽章:
1
天蝎座
日期:2014-10-18 18:48:57
7 [报告]
发表于 2014-08-18 15:10 |只看该作者
谢谢, 我就是看书的时候有点想不明白就问问你们!回复 6# www_xylove


   

论坛徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午马
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
8 [报告]
发表于 2014-08-18 22:53 |只看该作者
没事,学习oracle就是需要这样的专研精神,才能学到透彻。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP