SAP for oracle user authent

回复 收藏
SAP后台数据库Oracle里一般都有一个schema:OPS$QASADM之类的,它是什么作用的呢?

先让我们登陆进入Oracle查看一下参数:
代码:

:qasadm 6> sqlplus '/as sysdba'

SQL*Plus: Release 9.2.0.8.0 - Production on Thu Oct 11 16:47:26 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.8.0 - Production

SQL> show parameter os_auth

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix                    string      ops$
remote_os_authent                    boolean     FALSE
SQL>



OPS的原理是,它可以绕过Oracle的用户密码验证。如果remote_os_authent 设置为False的话,更可以让远程client绕过Oracle的密码验证!

接下来初步了解一下SAP Application Server连接DB Server的原理。在SAP APP起来之后,它的用户QASADM需要登陆到DB Server。虽然QASADM是属于DBA组,但它要怎样才能拿到SAPR3的密码呢?

查一下数据库里的这个表:
代码:
SQL> select * from  "OPS$QASADM"."SAPUSER";

USERID
--------------------------------------------------------------------------------
PASSWD
--------------------------------------------------------------------------------
SAPR3-CRYPT
V01/0014ZctvSB67Wv346ZuTiw==



由此得知,只有UnixID是QASADM的用户才可以有资格不需要密码登陆数据库,并且由OPS$QASADM得知只有QASADM才能获取SAPR3的密码(虽然是加了密的)。其他ID例如QQQADM之类的,是不能免密码登陆进入数据库的

下面再看看这个参数remote_os_authent, 把它设置为False是由很大的安全隐患的,因为任何一台笔记本,如果登陆的windows用户是QASADM,它都能免密码连上数据库!为什么还要这样设置呢?因为假如有多个Application server并且在不同服务器上,要连接进入DB Server,这种设置是必须的

如何杜绝安全隐患呢?并不很困难。只要DB Server有多个网卡/IP,可以只对内部网开放Oracle Listener,外部网不开放。

最后,要改变SAPR3密码,不能简单的用SQLPLUS改,而要使用SAP工具,例如Brtools或者Brconnect...因为这样SAP可以同时更新"OPS$QASADM"."SAPUSER";
2011-11-23 16:03 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: