SAP程序(如R3trans,tp,wp等)连接Oracle数据库按过程通常分如下三步:
1.以OPS$方式登录Oracle数据库;
OPS$方式即操作系统验证方式。
在Oracle上设置os_authent_prefix和remote_os_authent两个参数,其值分别为OPS$和true。
Oracle数据库中存在OPS$
ADM的用户,操作系统上存在ADM用户。
当以ADM用户登录操作系统时,则可以不用密码访问Oracle数据库。
当我们用R3trans -d测试数据库的连接时,在trans.log日志文件中会发现如下内容:
Logon as OPS$-user to get SAPPRD's password
Connecting as /@PRD
日志中的@PRD需在oracle的tnsname.ora文件进行配置,并设置操作系统环境变量dbs_ora_tnsname=PRD
因操作系统验证方式存在安全隐患,在SAP kernel版本7.20以后增加了SSFS方式。
2.从SAPUSER表中读取业务表的Owner和密码;
在OPS$ADM用户下存在一个名为SAPUSER的表,其记录了用业务表的Owner和加密的密码。
但SAP程序怎么知道业务表的owner呢?
这是因为设置了dbs_ora_schema=SAP
当我们用R3trans -d测试数据库的连接时,在trans.log日志文件中会发现如下内容:
Now I'm connected to ORACLE
Got SAPPRD's password from OPS$-user
3.用业务表的Owner和密码连接数据库。
当我们用R3trans -d测试数据库的连接时,在trans.log日志文件中会发现如下内容:
Now I'm disconnected from ORACLE
Connecting as SAPPRD/@PRD on connection 0
阅读(6205) | 评论(2) | 转发(0) |