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";
先让我们登陆进入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";
编辑回复