DataDirect for JDBC drivers sometimes require the ability to write data to disk to optimally perform operations. The most common scenario is the need to temporarily buffer data to disk when receiving large network responses that might exceed available memory; however, certain drivers may also require writing configuration files and schema information to disk. To protect your data, you should restrict access to directories to which the driver writes data or add those directories to a list of secured directories. This section will describe the directories to which the driver writes data.

Data temporarily buffered to disk

All DataDirect for JDBC drivers might temporarily buffer data to disk when fetching data from a database and returning the data to the application. When the driver buffers data to disk, it attempts to write temporary data to the location specified by the following variables and properties. The driver attempts the variables and properties in the following order:
  1. DD_TEMP environment variable
  2. dd.io.tmpdir system property
  3. java.io.tmpdir system property
    Note: Note that the value of the Java tmpdir may not be the same as the system temporary directory.

To better secure your environment, you should verify that each user has exclusive permissions to their own temp directory. Often on shared file systems, the temp directory is public, which is potentially unsafe.

Configuration files

A subset of the DataDirect for JDBC drivers employ a set of configuration files that define how the objects in the data source map to the set of tables presented by the driver. These files have the extensions .config, .script, and .native. Since these files control the behavior of the driver, access to the files should be restricted. The following drivers use configuration files:

  • Apache Cassandra
  • Google BigQuery
  • Microsoft Dynamics 365
  • Microsoft SharePoint
  • MongoDB
  • Oracle Eloqua
  • Oracle Sales Cloud
  • Oracle Service Cloud
  • Salesforce
  • SAP S/4HANA

The drivers use the following default locations to store configuration files. Note that you can change the location used to store configuration files using the SchemaMap property.

On Windows systems, the driver creates files in the directory specified by one of the following variables or properties. The driver attempts the locations in the following order:
  1. DD_HOME environment variable
  2. dd.home system property
  3. LOCALAPPDATA environment variable
  4. APPDATA environment variable
  5. user.home system property

In the first available directory, the driver creates the files in a subdirectory that takes the following form:

<available_location>\Progress\DataDirect\<driver_name>_Schema

Access to the configuration files in this directory should be restricted to only the user under which the app using the driver is running.

On UNIX and Linux systems, the files are created in the user’s home folder by default:
~/progress/datadirect/<driver_name>_schema/

Depending on the configuration of your system, the user's home folder might not be restricted by default. Access to the configuration files in this folder should be restricted to only the user(s) that are using the driver.