配置端点以便使用数据库 (JDBC) 密码使用方
内容
cminder12901cn
内容
您可以使用 JDBC 数据库密码使用方来替换使用 JDBC 连接到数据库的应用程序中的硬编码密码。 无论何时应用程序提供密码以用于身份验证,SAM 代理都会从
Privileged Identity Manager
企业控制台获取特权帐户密码,并将硬编码密码替换为特权帐户密码。在配置密码使用方使用的数据库之前,您应当准备端点以便使用 JDBC 密码使用方。
请按下列步骤操作:
- 确认已在该端点上安装启用了 SAM 集成功能的Privileged Identity Manager,且连接到数据库的应用程序使用 JRE 1.5 或更高版本。注意:安装Privileged Identity Manager的端点上应已安装连接到数据库的应用程序。 您不需要在数据库主机上安装Privileged Identity Manager。
- 如果连接到数据库的应用程序正在运行,请将其停止。
- 导航到下列目录,其中ACInstallDir是您安装Privileged Identity Manager的目录:ACInstallDir/SDK/JDBC
- 找到以下文件:
- CAJDBCDriver.jar
- CAJDBCService.sar
- CAPUPMClientCommons.jar
- jsafeFIPS.jar
- 将 CAJDBCService.sar 复制到下列目录,其中JBOSS_HOME是您安装 JBoss 的目录:JBOSS_HOME/server/default/deploy
- 将文件 CAJDBCDriver.jar、CAPUPMClientCommons.jar 和 jsafeFIPS.jar 复制到下列目录:JBOSS_HOME/server/lib
- 在企业管理服务器上,找到您为密码使用方定义的数据源 XML 文件。
- 打开文件进行编辑。 请执行下列操作之一:
- 启动Privileged Identity Manager。您已经配置端点以使用密码使用方。 现在,必须为Privileged Identity Manager企业控制台中的应用程序创建密码使用方。 创建密码使用方之后,启动该应用程序。
针对 Microsoft SQL Server 自定义数据源配置文件
您可以配置 JDBC 数据库密码使用方来替换使用 JDBC 连接到 Microsoft SQL Server 数据库的应用程序中的硬编码密码。 已准备端点以使用 JDBC 密码使用方之后,请完成下列步骤。
请按下列步骤操作:
- 找到 <driver-class> 标记,并将默认值替换为 JDBC 驱动程序类属性。 例如:<driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
- 找到 <connection-url> 标记,并将默认值替换为数据库连接设置。 例如:<connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
- 启动Privileged Identity Manager。您已将数据源配置文件自定义到 Microsoft SQL Server。 现在,必须为Privileged Identity Manager企业控制台中的应用程序创建密码使用方。 创建密码使用方之后,启动该应用程序。
针对 Oracle 自定义数据源配置文件
您可以配置 JDBC 数据库密码使用方来替换使用 JDBC 连接到 Oracle 数据库的应用程序中的硬编码密码。 已准备端点以使用 JDBC 密码使用方之后,请完成下列步骤。
请按下列步骤操作:
- 找到 <xa-datasource-class> 标记,并将默认值替换为 CAJDBCDataSource 类属性。 例如:<xa-datasource-class>com.ca.ppm.clients.jdbc.CAJDBCDataSource</xa-datasource-class>重要信息!属性名必须与默认值保留相同的大小写形式。
- 找到所有的 <xa-datasource-property name=> 标记。 例如:<xa-datasource-property name="URL">jdbc:oracle:oci8:@tc</xa-datasource-property> <xa-datasource-property name="User">scott</xa-datasource-property> <xa-datasource-property name="Password">tiger</xa-datasource-property>
- 将这些属性组合到单个字符串中。 例如:<xa-datasource-property name="CAJDBCProperties">CAJDBCPropertyRealDatasourceClass="oracle.jdbc.xa.client.OracleXADataSource";URL="jdbc:oracle:oci8:@tc";User="scott";Password="tiger";</xa-datasource-property>
- 启动Privileged Identity Manager。您已为 Oracle 自定义了数据源配置文件。 现在,必须为Privileged Identity Manager企业控制台中的应用程序创建密码使用方。 创建密码使用方之后,启动该应用程序。
密码使用方示例 JDBC 数据库
在该示例中,系统管理员 Steve 使用 JBoss 应用程序服务器来运行包含明文密码的应用程序。 应用程序使用明文密码来验证到 Microsoft SQL Server 数据库的连接。 Steve 想修改 JBoss 应用程序服务器,以便每当该应用程序连接到数据库时,都会从 SAM 获取特权帐户密码。
Steve 已在 Windows 端点上安装了 JBoss 应用程序服务器版本 4.2.3.GA 和 Java 开发工具包 (JDK) 1.6.0_19。 端点被命名为 JBossEndpoint。 名为 JBossEndpoint\Administrator 的用户使用 run.bat 文件来启动 JBoss 应用程序服务器,该服务器上运行连接到 Microsoft SQL Server 数据库的应用程序。 应用程序使用 sa 帐户连接到数据库。
- Steve 在 JBossEndpoint 上执行以下操作:
- 停止 JBoss。
- 安装启用了 SAM 集成功能的Privileged Identity Manager。
- 导航至以下目录:C:\Program Files\CA\AccessControl\\SDK\JDBC
- 找到以下文件:
- CAJDBCService.sar
- CAJDBCDriver.jar
- CAPUPMClientCommons.jar
- jsafeFIPS.jar
- 将文件 CAJDBCService.sar 复制到下列目录:C:\jboss-4.2.3.GA\server\default\deploy
- 将文件 CAJDBCDriver.jar、CAPUPMClientCommons.jar 和 jsafeFIPS.jar 复制到下列目录:C:\jboss-4.2.3.GA\server\default\lib
- 导航至以下目录:C:\jboss-4.2.3.GA\server\default\deploy
- 打开下列文件进行编辑:
- imworkflowdb-ds.xml
- objectstore-ds.xml
- reportsnapshot-ds.xml
- userstore-ds.xml
- 找到 <driver-class> 标记,并将默认值替换为 JDBC 驱动程序类属性。 例如:<driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
- 找到 <connection-url> 标记,并将默认值替换为数据库连接设置。 例如:<connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
- 保存并关闭文件。
- 启动Privileged Identity Manager。
- Steve 在Privileged Identity Manager企业控制台中执行以下操作:
- 创建名为 JBossEndpoint_PUPM 的“Windows Agentless”类型的端点。
- 在 JBossEndpoint_PUPM 端点上发现 sa 特权帐户。
- 使用下列参数创建数据库密码使用方:
- NameJBossEndpoint MS SQL 连接
- 使用方类型数据库 (ODBC/JDBC/OLEDB/OCI)
- 应用程序路径 C:\jboss-4.2.3.GA\bin\run.bat
- Accountsa
- HostJBossEndpoint
- UserJBossEndpoint\Administrator
- JBossEndpoint\Administrator 用户通过运行 run.bat 文件启动端点上的 JBoss 应用程序服务器。JBoss 应用程序服务器启动,而应用程序尝试连接到 SQL Server。 SAM 代理拦截该连接尝试,并向应用程序提供特权帐户密码。
- Steve 在下列目录的 JBoss 日志文件中检查错误:C:\jboss-4.2.3.GA\server\default\log
Oracle 数据库的其他信息
Tnsnames.ora 文件是 Oracle 配置文件,定义客户端用来连接到 Oracle 数据库的数据库地址。 Tnsnames.ora 文件可能包含多个主机名、端口、服务名称、实例名称或 SID。
SAM 代理会解析 $ORACLE_HOME 和 $TNS_ADMIN 环境变量,进而解析 tnsnames.ora 文件的完整路径。 环境变量在下列注册表项中有所定义:
HKEY_LOCAL_MACHINE\SOFTWARE\ComputerAssociates\AccessControl\Instrumentation\PlugIns\plugin\EnvironmentVariables
- plugin指定拦截连接尝试的插件的名称。值:OCIPlg、ODBCPlg、OLEDBPlg
每次拦截尝试对 Oracle 数据库进行的连接时,SAM 代理都会解析 tnsnames.ora 文件。 如果该文件包含任意这些属性的多个值,SAM 代理会为每个可能的属性组合创建单独的网络。 SAM 代理将所有的网络集发送至
Privileged Identity Manager
企业控制台,从而获取与网络集最匹配的特权帐户密码。示例:tnsnames.ora 文件中的网络集
以下内容是 tnsnames.ora 文件的示例:
SAMPLE_INSTANCE= (DESCRIPTION= (SOURCE_ROUTE=yes) (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # hop 1 (ADDRESS_LIST= (FAILOVER=on) (LOAD_BALANCE=off) # hop 2 (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630)) (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630))) (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521)) # hop 3 (CONNECT_DATA=(SERVICE_NAME=Sales.example.com)))
当 SAM 代理解析该 tnsnames.ora 文件时,以下网络集将发送到
Privileged Identity Manager
企业控制台:- HOST=host1, PORT=1630
- HOST=host2a, PORT=1630
- HOST=host2b, PORT=1630
- HOST=host3, PORT=1521, SERVICE_NAME= Sales.example.com