The EXTBL_LOCATION database configuration parameter provides an allow list of paths that external tables may access for local files. It is recommended that this value be set to a appropriate paths and not left empty. The default value when empty is for external tables to have access to any directory that is accessible to the fenced mode process.


The permissions used to access local files for external tables is governed by the fenced mode process, and not the user connected to Db2. Allowing unrestricted access to the file system may lead to a loss of confidentiality of data if the external table accessed a file that was not expected. Providing a value for EXTBL_LOCATION limits the paths that external tables can access.

Excelent Compliance Solution.

Puppet is an excellent solution to ensure your databases are CIS or STIG compliant. Now you’re looking at information about only one compliance control, but managing total compliance isn’t hard either!

If you you like he prospect of easy way into continuous compliancy with minimal fuss and bother, we suggest taking a look at our solution as your go-to option. Plus, our team can help you get up and running so that you can focus on other areas of your business. What are you waiting for? Get started today!


This control is used in the following benchmarks:


To deliberately skip this control (e.g. meaning don’t use Puppet to enforce this setting), we provide you with three ways:

1) Add db2_secured::controls::specify_a_secure_location_for_external_tables: skip to your hiera data. This will skip this control for ALL databases.
2) Add db2_secured::controls::specify_a_secure_location_for_external_tables::instance_name::dbname: skip to your hiera data. This will skip this control for specified database only.
3) Add an entry with the content specify_a_secure_location_for_external_tables to the array value db2_secured::skip_list in your hiera data.


Attribute Name Short Description
title The database identifier to apply the control to.


The database identifier to apply the control to.

All controls need an database identifier to apply the control to. Here is a simple example:

db2_secured::controls::control_name { 'db2inst1/MYDB':}

In this example, the string dbinst1 is the instance, the string MYDB is the database to apply the control to.

Back to overview of controls::specify_a_secure_location_for_external_tables