Connectivity Supplement

Setting Up the Application Server

The application server support in DB2 Universal Database for OS/390 allows DB2 Universal Database for OS/390 to act as a server for DRDA application requesters. The Application Requester connected to a DB2 Universal Database for OS/390 Application Server can be:

For any Application Requester connected to a DB2 Universal Database for OS/390 Application Server, the DB2 Universal Database for OS/390 Application Server supports database access as follows:

Provide Network Information

For the DB2 Universal Database for OS/390 Application Server to properly process distributed database requests, you must take the following steps:

  1. Define the application server to the local Communications Manager.
  2. Define each potential secondary server destination so the DB2 Universal Database for OS/390 application server can reroute SQL requests to their final destination.
  3. Provide the necessary security.
  4. Provide for data representation.

Defining the Application Server (SNA)

For the Application Server to receive distributed database requests, it must be defined to the local Communications Manager and have a unique RDB_NAME. The following discussion relates to SNA connections. You must take the following steps to properly define the Application Server:

  1. Select the LU name and RDB_NAME to be used by the DB2 Universal Database for OS/390 Application Server. The process to record these names in DB2 Universal Database for OS/390 and VTAM is the same process described in Defining the Local System (SNA). The RDB_NAME you choose for DB2 Universal Database for OS/390 must be supplied to all end users and Application Requesters that require connectivity to the Application Server.
  2. Register the NETID.LUNAME value for the DB2 Universal Database for OS/390 Application Server with each Application Requester requiring access, so the Application Requester can route SNA requests to the DB2 Universal Database for OS/390 server. This is true even in cases where the Application Requester is able to perform dynamic network routing, because the Application Requester must know the NETID.LUNAME before dynamic network routing can be used.
  3. Provide the DRDA default TPN (X'07F6C4C2' ) to each Application Requester because DB2 Universal Database for OS/390 automatically uses this value.
  4. Create an entry in the VTAM mode table for each mode name that is requested by an Application Requester. These entries describe the RU sizes, pacing window size, and class of service for each mode name.
  5. Define session limits for the Application Requesters that connect with the DB2 Universal Database for OS/390 Application Server. The VTAM APPL statement defines default session limits for all partner systems. If you want to establish unique defaults for a particular partner, you can use the SYSIBM.LUMODES table of the communications database (CDB).

    See Setting RU Sizes and Pacing about how to review your VTAM network.

  6. Create entries in the DB2 Universal Database for OS/390 CDB to identify which Application Requesters are allowed to connect to the DB2 Universal Database for OS/390 Application Server. Two basic approaches to define the CDB entries for the Application Requesters in the network are:
    1. You can insert a row in SYSIBM.LUNAMES that provides default values to use for any LU not specifically described in the CDB (the default row contains blanks in the LUNAME column). This approach allows you to define specific attributes for some of the LUs in your network, while establishing defaults for all other LUs.

      For example, you can allow the DALLAS system (another DB2 Universal Database for OS/390 system) to send already-verified distributed database requests (LU 6.2 SECURITY=SAME), while requiring database manager systems to send passwords. Furthermore, you might not want to record an entry in the CDB for each database manager system, especially if there is a large number of these systems. Figure 25 shows how the CDB can be used to specify SECURITY=SAME for the DALLAS system, while enforcing SECURITY=PGM for all other requesters.

      Figure 25. Establishing Defaults for Application Requester Connections (SNA)

      INSERT INTO SYSIBM.LUNAMES
           (LUNAME, SYSMODENAME, SECURITY_IN, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', ' ');
      INSERT INTO SYSIBM.LUNAMES
           (LUNAME, SYSMODENAME, SECURITY_IN, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES (' ', ' ', 'C', 'N', 'N', ' ');
      

    2. You can use the CDB to individually authorize each Application Requester in the network, by setting the CDB in one of these ways:
      • Do not record a default row in SYSIBM.LUNAMES. When the default row (the row containing a blank LU name) is not present, DB2 Universal Database for OS/390 requires a row in SYSIBM.LUNAMES containing the LU name for each application requester that attempts to connect. If the matching row is not found in the CDB, the Application Requester is denied access.
      • Record a default row in SYSIBM.LUNAMES that specifies come-from checking is required (USERNAMES column set to 'I' or 'B'). This causes DB2 Universal Database for OS/390 to limit access to Application Requesters and end users identified in the SYSIBM.USERNAMES table, as described in Come-From Checking . You might want to use this approach if your name translation rules require a row with a blank LU name in SYSIBM.LUNAMES, but you do not want DB2 Universal Database for OS/390 to use this row to allow unrestricted access to the DB2 Universal Database for OS/390 Application Server.

      In Figure 26, no row contains blanks in the LUNAME column, so DB2 Universal Database for OS/390 denies access to any LU other than LUDALLAS or LUNYC.

      Figure 26. Identifying Individual Application Requester Connections (SNA)

      INSERT INTO SYSIBM.LUNAMES
           (LUNAME, SYSMODENAME, SECURITY_IN, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', ' ');
      INSERT INTO SYSIBM.LUNAMES
           (LUNAME, SYSMODENAME, SECURITY_IN, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES ('LUNYC', ' ', 'A', 'N', 'N', ' ');
      

Defining the Application Server (TCP/IP)

For the Application Server to receive distributed database requests over TCP/IP connections, it must be defined to the local TCP/IP subsystem, and have a unique RDB_NAME. Additionally, the DB2 Universal Database for OS/390 Bootstrap Dataset must include the necessary parameters, and you may need to make updates to the DB2 Universal Database for OS/390 Communications Database (CDB).

  1. For information about setting up TCP/IP at the AS, see DB2 Universal Database for OS/390 Installation Reference. How to set up the AR is described in DB2 Connect Enterprise Edition for OS/2 and Windows Quick Beginnings, and DB2 Connect Personal Edition Quick Beginnings.
  2. An example Bootstrap Dataset definition is shown in Figure 18.
  3. No CDB updates are required if you will only use inbound database connections, so that if you plan to use DB2 Universal Database for OS/390 only as a server, you do not need to populate the CDB, and default values can be used. A simple example of how to update SYSIBM.IPNAMES follows.

    If you want to permit inbound database connection requests for TCP/IP nodes, you can use an SQL command such as the following to update this table:

       INSERT INTO SYSIBM.IPNAMES (LINKNAME) VALUES('        ')                                   
    

Provide Security

When an Application Requester routes a distributed database request to the DB2 Universal Database for OS/390 Application Server, the following security considerations can be involved:

Come-From Checking

When the DB2 Universal Database for OS/390 Application Server receives an end user name from the Application Requester, the Application Server can restrict the end user names received from a given Application Requester. This is accomplished through the use of come-from checking. Come-from checking allows the Application Server to specify that a given user ID is only allowed to be used by particular partners. For example, the Application Server can restrict JONES to "come from" DALLAS. If another Application Requester (other than DALLAS) attempts to send the name JONES to the Application Server, the Application Server can reject the request because the name did not come from the correct network location.

DB2 Universal Database for OS/390 implements come-from checking as part of inbound end user name translation, which is described in the next section.
Note:Inbound and come-from checks are not done for TCP/IP inbound requests.

Selecting End User Names

The user ID passed by the Application Requester might not be unique throughout the entire SNA network. The DB2 Universal Database for OS/390 Application Server might need to perform inbound name translation to create unique end user names throughout the SNA network. Similarly, the DB2 Universal Database for OS/390 Application Server might need to perform outbound name translation to provide a unique end user name to the secondary servers involved in the application (see Provide Security for information concerning outbound end user name translation).

Inbound name translation is enabled by setting the USERNAMES column of the SYSIBM.LUNAMES or SYSIBM.IPNAMES table to 'I' (inbound translation) or 'B' (both inbound and outbound translation). When inbound name translation is in effect, DB2 Universal Database for OS/390 translates the user ID sent by the Application Requester and the DB2 Universal Database for OS/390 plan owner's name (if the Application Requester is another DB2 Universal Database for OS/390 system).

If the Application Requester sends both a user ID and a password on the APPC ALLOCATE verb, the user ID and password are validated before the user ID is translated. The PASSWORD column in SYSIBM.USERNAMES is not used for password validation. Instead, the user ID and password are presented to the external security system (RACF or a RACF-equivalent product) for validation.

When the incoming user ID on the ALLOCATE verb is verified, DB2 Universal Database for OS/390 has authorization exits you can use to provide a list of secondary AUTHIDs and perform additional security checks. See the DB2 Universal Database for OS/390 Administration Guide, for details.

The inbound name translation process searches for a row in the SYSIBM.USERNAMES table, which must fit one of the patterns shown in the following precedence list (TYPE.AUTHID.LINKNAME):

  1. I.AUTHID.LINKNAME--A specific end user from a specific Application Requester
  2. I.AUTHID.blank--A specific end user from any Application Requester
  3. I.blank.LINKNAME--Any end user from a specific Application Requester

If no row is found, remote access is denied. If a row is found, remote access is allowed and the end user's name is changed to the value provided in the NEWAUTHID column, with a blank NEWAUTHID value indicating that the name is unchanged. Any DB2 Universal Database for OS/390 resource authorization checks (for example, SQL table privileges) made by DB2 Universal Database for OS/390 are performed on the translated end user names, rather than on the original user names.

When the DB2 Universal Database for OS/390 Application Server receives an end user name from the Application Requester, several objectives can be accomplished by using the DB2 Universal Database for OS/390 inbound name translation capability:

Provide Network Security

For SNA connections LU 6.2 provides three major network security features:

Network Security discusses how to specify session-level security and encryption with DB2 Universal Database for OS/390. The DB2 Universal Database for OS/390 Application Server uses session-level security and encryption in exactly the same manner as the DB2 Universal Database for OS/390 Application Requester.

The only remaining network security consideration is SNA conversation-level security. Some aspects of conversation-level security are unique for a DB2 Universal Database for OS/390 Application Server. The DB2 Universal Database for OS/390 Application Server plays two distinct roles in network security:

If a security violation is discovered, LU 6.2 requires the DB2 Universal Database for OS/390 Application Server to return the SNA security failure sense code ('080F6051'X) to the Application Requester. Because this sense code does not describe the cause of the failure, DB2 Universal Database for OS/390 provides two methods for recording the cause of distributed security violations:

Database Manager Security

As the owner of database resources, the DB2 Universal Database for OS/390 Application Server controls the database security functions for SQL objects residing at the DB2 Universal Database for OS/390 Application Server. Access to DB2 Universal Database for OS/390-managed objects is controlled by privileges, which are granted to users by the DB2 Universal Database for OS/390 administrator or the owners of individual objects. The two basic classes of objects that the DB2 Universal Database for OS/390 Application Server controls are:

When you create a package, the DISABLE/ENABLEoption allows you to control which DB2 Universal Database for OS/390 connection types can run the package. You can use RACF and DB2 Universal Database for OS/390 security exit routines to selectively allow end users to use DDF. You can use RLF to specify limits on processor time for remote binds and dynamic SQL executions.

Consider a DB2 Universal Database for OS/390 package named MYPKG, which is owned by JOE. JOE can allow SAL to execute the package by issuing the DB2 Universal Database for OS/390 GRANT USE statement. When SAL executes the package, the following occurs:

Security Subsystem

The DB2 Universal Database for OS/390 Application Server use of the security subsystem (RACF or a RACF-equivalent product) is dependent on how you define the inbound name translation function in the SYSIBM.LUNAMES table:

Represent Data

You must ensure that your DB2 Universal Database for OS/390 subsystem has the ability to convert from each application requester's CCSID to your DB2 Universal Database for OS/390 subsystem's installation CCSID. Refer to Represent Data for more information.


[ Top of Page | Previous Page | Next Page ]