This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Installing the Teradata Data Warehouse Protector

This section outlines the installation process for the Protegrity Teradata Data Warehouse Protector.

1 - Installing the Objects

  1. Log in to the server as the user with the required permissions.

  2. Navigate to the /opt/protegrity/ directory.

  3. To install the Teradata objects, run the following command:

    ./PepTeradataSetup_Linux_x64_<DBP_version>.sh
    
  4. Press ENTER.
    The prompt to continue installing the Teradata objects appears.

    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    This will install the teradata objects on your computer
    Do you want to continue? [yes or no]
    
  5. To proceed with the installation of the Teradata objects, type yes.

  6. Press ENTER.
    The prompt to enter the name of the database to install the UDFs appears.

    Enter name of database where the UDFs will be installed.
    
  7. Enter the database name.

  8. Press ENTER.
    The prompt to mention the maximum size of the VARCHAR allocated by the UDFs appears.

  9. Enter the maximum size of the VARCHAR to be allocated by the UDFs.

    Note: The default value is 500 characters. Modify the default value in this step, as per requirements, for maximum character length. The mentioned VARCHAR size is the maximum value allocated by the UDFs for UNICODE character set.

  10. Press ENTER.
    The script installs the Teradata objects in the /opt/protegrity/databaseprotector/teradata/ directory.

    [500]:
    1000
    ***********BUFFER LENGTH INITIALIZATION**************
    UDF VARCHAR MAX INPUT BUFFER LENGTH (TOKENIZATION) : 1000 Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (TOKENIZATION) : 1351 Latin characters
    UDF VARCHAR MAX INPUT BUFFER LENGTH (ENCRYPTION) : 1000 Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (ENCRYPTION) : 1038 Bytes
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (TOKENIZATION) : 1000 UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (TOKENIZATION) : 2706 UNICODE characters
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (ENCRYPTION) : 1000 UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (ENCRYPTION) : 2038 Bytes
    teradata objects installed in /opt/protegrity/databaseprotector/teradata.
    Permission for /opt/protegrity/databaseprotector is successfully set.
    

    Note: For manual installation, the script will install the database objects under the specified directory only. Important: By default, all the configurations provided for the UDFs are stored in the dbpuserconf.ini file within the /etc/protegrity/ directory. The Teradata Data Warehouse Protector uses the dbpuserconf.ini file for internal purposes only.

2 - Installing the Protector on Single Node

The Teradata Data Warehouse Protector build provides an automated script to manage the installation process on a standalone system. The master script internally calls the scripts to install the components. The master script installs the components in the following order:

  1. Log Forwarder
  2. RPAgent
  3. Policy Enforcement Point (Database Protector)

The installation can also be performed manually by executing the individual scripts to install the different components.

The master script is available in the directory where the installation files are extracted. It provides the following arguments:

  • install - installs the components in an interactive mode.
  • upgrade - installs a newer version of the protector with minimal downtime.
  • silent - installs the components in a non-interactive mode.
  • install.ini - installs the components as per the parameters provided in the file.
  • help - lists the arguments available for the script.

In addition, the master script will rollback the installation process if any errors are encountered. The script will revert the changes.

Viewing the Arguments for the Script

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To view the arguments, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --help
    
  4. Press ENTER. The script lists the available arguments.
     Options:
     --install    Use this option when installing the solution for the first time on a machine/host.
                 (i.e., there is no previous installation present)
    
     --upgrade    Use this option when upgrading an existing installation on the machine/host.
    
     --install-ini <file>    (Optional) Provide a path to an install.ini file for silent or pre-configured installations.
                             This option works with --install only.
                             It must not be used with --upgrade or --silent.
                             You can pass this either as:
                             --install-ini /path/to/install.ini
                             or
                             --install-ini=/path/to/install.ini
                             Refer to the product documentation for details about the configuration options available in install.ini.
                             The documentation describes all supported keys, required fields, and example configurations.
     --silent    (Optional) Runs the installation/upgrade in silent mode with minimum interactive prompts.
    
     --help, -h  Display this help message and exit.
    

Installing the Protector using the Interactive Mode

Note: For installation/upgrade using the automation script, the components will be installed within a <DBP_version> folder under the specified directory.

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To execute the script, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --install
    
  4. Press ENTER. The script executes pre-checks and the prompt to select the silent mode of installation appears.
     2026-04-30 08:32:43 - [INFO] ========================================================================
     2026-04-30 08:32:43 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-04-30 08:32:43 - [INFO] ========================================================================
    
     2026-04-30 08:32:43 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-04-30 08:32:43 - [INFO] Checking Teradata PDE state on running node...
     2026-04-30 08:32:43 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-04-30 08:32:43 - [INFO] Checking accessibility of all Teradata nodes...
     2026-04-30 08:32:43 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-04-30 08:32:43 - [INFO] ==========================================
     2026-04-30 08:32:43 - [INFO] Node accessibility check PASSED
     2026-04-30 08:32:43 - [INFO] All 1 node(s) have connected
    
     <---------------------  localhost  -------------------------------->
     td20sles15
     2026-04-30 08:32:43 - [INFO] ==========================================
    
     2026-04-30 08:32:43 - [INFO] ========================================================================
     2026-04-30 08:32:43 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-04-30 08:32:43 - [INFO] ========================================================================
    
     Do you want silent installation? (yes/no) [no]:
    
  5. To proceed with interactive mode of installation, type no.
  6. Press ENTER.
    The prompt to specify the installation directory for the components appears.
    Do you want to install the new LogForwarder, RPAgent, and DatabaseProtector together in a single directory? (yes/no) [no]:
    
  7. To install the components under a same directory, type yes.
  8. Press ENTER.
    The prompt to enter the installation directory appears.
    Enter new installation directory [/opt/protegrity]:
    
  9. To use the default directory, press ENTER.
    The prompt to provide credentials to create the UDFs appears.
    Do you want to continue and create UDFs?
    To create the UDFs, provide the database credentials  (yes/no) [no]:
    
  10. To create the UDFs, type yes.

    Note: Skipping creation of the UDFs terminates the installation script.

  11. Press ENTER.
    The prompt to enter the database user name appears.
    Enter Teradata database username:
    
  12. Enter the username to login to the database.
  13. Press ENTER.
    The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  14. Enter the password.
  15. Press ENTER.
    The prompt to specify the database to install the UDF appears.
    Enter name of database where the UDFs will be installed [PROTEGRITY]:
    
  16. Enter the database name to install the UDFs.
  17. Press ENTER.
    The prompt to specify the maximum size of varchar to be allocated by the UDFs appears.
    Enter the maximum size of varchar to be allocated by the UDFs [500]:
    
  18. Enter the maximum size of varchar to be allocated by the UDFs.
  19. Press ENTER.
    The script validates the database and the prompt to verify the configuration appears.
    2026-04-30 08:33:06 - [INFO] Validating database ...
    2026-04-30 08:33:26 - [INFO] Database validated successfully
    
    2026-04-30 08:33:26 - [INFO] **************************************************************************
    2026-04-30 08:33:26 - [INFO] Installation will be done with following configuration:
    2026-04-30 08:33:26 - [INFO] Mode: install
    2026-04-30 08:33:26 - [INFO] Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-04-30 08:33:26 - [INFO] RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-04-30 08:33:26 - [INFO] DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-04-30 08:33:26 - [INFO] This is a fresh install.
    2026-04-30 08:33:26 - [INFO] **************************************************************************
    
    2026-04-30 08:33:26 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  20. To continue, type yes.
  21. Press ENTER.
    The script proceeds with the installation and triggers the Log Forwarder installation script. The prompt to enter the Audit Store endpoint appears.
    2026-04-30 08:33:31 - [INFO] Continuing with installation...
    2026-04-30 08:33:31 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-04-30 08:33:31 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    Enter the audit store endpoint (host), alternative (host:port) to use another port than the default port 9200:
    
  22. Enter the audit store endpoint.
  23. Press ENTER.
    The prompt to enter additional audit store endpoint appears.
    Audit store endpoints: <ESA_IP_Address>:9200
    Do you want to add another audit store endpoint? [y/n]:
    
  24. To specify additional endpoints, type yes.
  25. Press ENTER.
    The prompt to enter the Audit Store endpoint appears.
    Enter the audit store endpoint (host), alternative (host:port) to use another port than the default port 9200:
    
  26. Enter the audit store endpoint.
  27. Press ENTER.
    The script lists the endpoints that will be added. The prompt to accept and continue the installation appears.
    -------------------------------------------
    These audit store endpoints will be added:
    <ESA_IP_Address>:9200
    <ESA_IP_Address>:9200
    <ESA_IP_Address>:9200
    
    Type 'y' to accept or 'n' to abort installation:
    
  28. To accept the endpoints and proceed, type yes.
  29. Press ENTER.
    The script installs the log forwarder. The script then triggers the RPAgent installation script. The prompt to enter the upstream host name or IP address appears.
    Unpacking...
    Extracting files...
    
    Protegrity Log Forwarder installed in /opt/protegrity/<DBP_version>/logforwarder.
    
    2026-04-30 08:33:58 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-04-30 08:33:58 - [INFO] Installing/Upgrading RPAGENT...
    Please enter upstream host name or IP address,
    alternative (host:port) to use another port than the default port 25400:
    
  30. Enter the ESA hostname.
  31. Press ENTER.
    The prompt to enter ESA token appears.
    Enter ESA token (leave blank to use username/password):
    
  32. To specify the username/password, press ENTER. The prompt to enter ESA username appears.
    Enter ESA username:
    
  33. Enter the username to connect to ESA.
  34. Press ENTER.
    The prompt to enter ESA password appears.
    Enter ESA user's password:
    
  35. Enter the password to connect to ESA.
  36. Press ENTER.
    The script:
    • validates and downloads the certificates from ESA
    • installs the RPAgent
    • copies the Log Forwarder and RPAgent to all the nodes in the Teradata cluster
    • creates installation directories
    • starts the new Log Forwarder on all the nodes
    • triggers the script to install the database objects
    • installs the database objects
    • copies the objects to all the nodes in the cluster
    • starts the new RPAgent on all the nodes
    • creates the new UDFs
      The prompt to create the varcharunicode UDFs appears.
    2026-04-30 08:34:16 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    Certificate validation successful.
    Obtaining token from <ESA_Hostname>:25400...
    Downloading certificates from <ESA_Hostname>:25400...
    % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                    Dload  Upload  Total   Spent   Left   Speed
    100  11264 100  11264   0      0  63570      0                              0
    
    Extracting certificates...
    Certificates successfully downloaded and stored in /opt/protegrity/<DBP_version>/rpagent/data
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-04-30 08:34:18 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-04-30 08:34:18 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-04-30 08:34:18 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-04-30 08:34:18 - [INFO] Creating installation directories on all nodes if not present
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:19 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 57934195 bytes received (9 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:20 - [INFO] Logforwarder successfully copied to all nodes
    2026-04-30 08:34:20 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 14787376 bytes received (9 files/3 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:21 - [INFO] RPAgent successfully copied to all nodes
    2026-04-30 08:34:21 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-04-30 08:34:21 - [INFO] Starting new Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Fluent Bit v4.2.2-1.5.1+0.gdfa6.fb-4.2
    * Copyright (C) 2015-2025 The Fluent Bit Authors
    * Fluent Bit is a CNCF graduated project under the Fluent organization
    * https://fluentbit.io
    
    ______ _                  _    ______ _ _             ___   _____
    |  ___| |                | |   | ___ (_) |           /   | / __  \
    | |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| | `' / /'
    |  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |   / /
    | |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |_./ /___
    \_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)_____/
    
                Fluent Bit v4.2   Direct Routes Ahead
            Celebrating 10 Years of Open, Fluent Innovation!
    
    [2026/04/30 08:34:22.133493631] [ info] switching to background mode (PID=28685)
    Log Forwarder was not started successfully
    
    2026-04-30 08:34:24 - [INFO] Preparing Database Protector installation...
    2026-04-30 08:34:24 - [INFO] Installing/Upgrading DBP...
    2026-04-30 08:34:24 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    
    This will install the teradata objects on your computer
    Do you want to continue? [yes or no]
    Enter installation directory.
    A new directory will be created in the installation directory.
    [/opt/protegrity]:
    Unpacking...
    Extracting files...
    Enter name of database where the UDFs will be installed.
    [PROTEGRITY]:
    Enter maxmimum size of varchar to be allocated by the UDFs.
    NOTE: This is the maximum varchar size allocated by the UDFs
        for latin as well as unicode character set.
        Larger size will affect the performance !!!
        Some applications can also have issues with larger size,
        such as BTEQ, SQL Assistant.
    [500]:
    
    ***********BUFFER LENGTH INITIALIZATION**************
    UDF VARCHAR MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  676  Latin characters
    UDF VARCHAR MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  538  Bytes
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  1356  UNICODE characters
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  1038  Bytes
    
    teradata objects installed in /opt/protegrity/<DBP_version>/databaseprotector/teradata.
    
    2026-04-30 08:34:25 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-04-30 08:34:25 - [INFO] Copying DatabaseProtector to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926075 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:26 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 1 node(s) have connected
    2026-04-30 08:34:26 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-04-30 08:34:26 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 1 node(s) have connected
    All 1 node(s) have connected
    localhost:1022: send completed: 1157 bytes received (1 files/1 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:27 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-04-30 08:34:27 - [INFO] Starting new RPAgent on all nodes
    Starting rpagent
    2026-04-30 08:34:27 - [INFO] Successfully launched new RPAgent on all nodes
    2026-04-30 08:34:27 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 20.00.00.05 (64-bit) Thu Apr 30 08:34:27 2026 PID: 30406
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 21 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    Do you want to create the varcharunicode UDFs? (yes/no) [no]:
    
  37. To create the varcharunicode UDFs, type yes.
  38. Press ENTER. The script creates the varchar unicode UDFs and completes the installation.
    2026-04-30 08:35:25 - [INFO] Creating varcharunicode UDFs
    BTEQ 20.00.00.05 (64-bit) Thu Apr 30 08:35:25 2026 PID: 31403
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-04-30 08:35:49 - [INFO] Varcharunicode UDFs created successfully
    2026-04-30 08:35:49 - [INFO] Testing UDFs
    BTEQ 20.00.00.05 (64-bit) Thu Apr 30 08:35:49 2026 PID: 31505
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned.
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0
    2026-04-30 08:36:09 - [INFO] Installation successful.
    2026-04-30 08:36:09 - [INFO] All components installed successfully.
    
    2026-04-30 08:36:09 - [INFO] IMPORTANT: Protegrity UDT installation must be handled manually. Refer to product documentation.
    2026-04-30 08:36:09 - [INFO] IMPORTANT: Protegrity Decimal UDF objects installation must be handled manually. Refer to product documentation.
    

Installing the Protector using the Silent Mode

Note: For installation/upgrade using the automation script, the components will be installed within a <DBP_version> folder under the specified directory.

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To execute the script, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --install
    
  4. Press ENTER.
    The script executes pre-checks and the prompt to select the silent mode of installation appears.
     2026-04-30 08:32:43 - [INFO] ========================================================================
     2026-04-30 08:32:43 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-04-30 08:32:43 - [INFO] ========================================================================
    
     2026-04-30 08:32:43 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-04-30 08:32:43 - [INFO] Checking Teradata PDE state on running node...
     2026-04-30 08:32:43 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-04-30 08:32:43 - [INFO] Checking accessibility of all Teradata nodes...
     2026-04-30 08:32:43 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-04-30 08:32:43 - [INFO] ==========================================
     2026-04-30 08:32:43 - [INFO] Node accessibility check PASSED
     2026-04-30 08:32:43 - [INFO] All 1 node(s) have connected
    
     <---------------------  localhost  -------------------------------->
     td20sles15
     2026-04-30 08:32:43 - [INFO] ==========================================
    
     2026-04-30 08:32:43 - [INFO] ========================================================================
     2026-04-30 08:32:43 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-04-30 08:32:43 - [INFO] ========================================================================
    
     Do you want silent installation? (yes/no) [no]:
    
  5. To proceed with silent mode of installation, type yes.
  6. Press ENTER.
    The script uses the default installation directory, /opt/protegrity/, for silent installation. The prompt to create UDFs and provide database credentials appears.
     2026-04-30 08:08:27 - [INFO] You have chosen silent mode. Therefore, /opt/protegrity is considered as base directory for new installation.
     Do you want to continue and create UDFs?
     To create the UDFs, provide the database credentials  (yes/no) [no]:
    
  7. To create the UDFs, type yes.

    Note: Skipping creation of the UDFs terminates the installation script.

  8. Press ENTER.
    The prompt to enter the database username appears.
    Enter Teradata database username:
    
  9. Enter the username.
  10. Press ENTER.
    The prompt to enter the password appears.
    Enter Teradata database user's password:
    
  11. Enter the password.
  12. Press ENTER.
    The prompt to enter the database name appears.
    Enter name of database where the UDFs will be installed [PROTEGRITY]:
    
  13. Enter the database name to install the UDFs.
  14. Press ENTER.
    The prompt to specify the maximum size of varchar to be allocated by the UDFs appears.
    Enter the maximum size of varchar to be allocated by the UDFs [500]:
    
  15. Enter the maximum size of varchar to be allocated by the UDFs.
  16. Press ENTER.
    The script validates the database. The script lists the configuration and the prompt to continue appears.
    2026-04-30 08:08:53 - [INFO] Validating database ...
    2026-04-30 08:09:13 - [INFO] Database validated successfully
    
    2026-04-30 08:09:13 - [INFO] **************************************************************************
    2026-04-30 08:09:13 - [INFO] Installation will be done with following configuration:
    2026-04-30 08:09:13 - [INFO] Mode: install
    2026-04-30 08:09:13 - [INFO] Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-04-30 08:09:13 - [INFO] RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-04-30 08:09:13 - [INFO] DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-04-30 08:09:13 - [INFO] This is a fresh install.
    2026-04-30 08:09:13 - [INFO] **************************************************************************
    
    2026-04-30 08:09:13 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  17. To proceed with the configuration, type yes.
  18. Press ENTER.
    The script proceeds with the installation and triggers the Log Forwarder installation script. The prompt to enter the Audit Store endpoint appears.
    2026-04-30 08:33:31 - [INFO] Continuing with installation...
    2026-04-30 08:33:31 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-04-30 08:33:31 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    Enter the audit store endpoint (host), alternative (host:port) to use another port than the default port 9200:
    
  19. Enter the audit store endpoint.
  20. Press ENTER.
    The prompt to enter additional audit store endpoint appears.
    Audit store endpoints: <ESA_IP_Address>:9200
    Do you want to add another audit store endpoint? [y/n]:
    
  21. To specify additional endpoints, type yes.
  22. Press ENTER.
    The prompt to enter the Audit Store endpoint appears.
    Enter the audit store endpoint (host), alternative (host:port) to use another port than the default port 9200:
    
  23. Enter the audit store endpoint.
  24. Press ENTER.
    The script lists the endpoints that will be added. The prompt to accept and continue the installation appears.
    -------------------------------------------
    These audit store endpoints will be added:
    <ESA_IP_Address>:9200
    <ESA_IP_Address>:9200
    <ESA_IP_Address>:9200
    
    Type 'y' to accept or 'n' to abort installation:
    
  25. To accept the endpoints and proceed, type yes.
  26. Press ENTER.
    The script installs the log forwarder. The script then triggers the RPAgent installation script. The prompt to enter the upstream host name or IP address appears.
    Unpacking...
    Extracting files...
    
    Protegrity Log Forwarder installed in /opt/protegrity/<DBP_version>/logforwarder.
    
    2026-04-30 08:33:58 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-04-30 08:33:58 - [INFO] Installing/Upgrading RPAGENT...
    Please enter upstream host name or IP address, alternative (host:port) to use another port than the default port 25400:
    
  27. Enter the ESA hostname.
  28. Press ENTER.
    The prompt to enter ESA token appears.
    Enter ESA token (leave blank to use username/password):
    
  29. To specify the username/password, press ENTER.
    The prompt to enter ESA username appears.
    Enter ESA username:
    
  30. Enter the username to connect to ESA.
  31. Press ENTER.
    The prompt to enter ESA password appears.
    Enter ESA user's password:
    
  32. Enter the password to connect to ESA.
  33. Press ENTER.
    The script:
    • validates and downloads the certificates from ESA
    • installs the RPAgent
    • copies the Log Forwarder and RPAgent to all the nodes in the Teradata cluster
    • creates installation directories
    • starts the new Log Forwarder on all the nodes
    • triggers the script to install the database objects
    • installs the database objects
    • copies the objects to all the nodes in the cluster
    • starts the new RPAgent on all the nodes
    • creates the new UDFs The prompt to create the varcharunicode UDFs appears.
    2026-04-30 08:34:16 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    Certificate validation successful.
    Obtaining token from <ESA_Hostname>:25400...
    Downloading certificates from <ESA_Hostname>:25400...
    % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                    Dload  Upload  Total   Spent   Left   Speed
    100  11264 100  11264   0      0  63570      0                              0
    
    Extracting certificates...
    Certificates successfully downloaded and stored in /opt/protegrity/<DBP_version>/rpagent/data
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-04-30 08:34:18 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-04-30 08:34:18 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-04-30 08:34:18 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-04-30 08:34:18 - [INFO] Creating installation directories on all nodes if not present
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:19 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 57934195 bytes received (9 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:20 - [INFO] Logforwarder successfully copied to all nodes
    2026-04-30 08:34:20 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 14787376 bytes received (9 files/3 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:21 - [INFO] RPAgent successfully copied to all nodes
    2026-04-30 08:34:21 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-04-30 08:34:21 - [INFO] Starting new Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Fluent Bit v4.2.2-1.5.1+0.gdfa6.fb-4.2
    * Copyright (C) 2015-2025 The Fluent Bit Authors
    * Fluent Bit is a CNCF graduated project under the Fluent organization
    * https://fluentbit.io
    
    ______ _                  _    ______ _ _             ___   _____
    |  ___| |                | |   | ___ (_) |           /   | / __  \
    | |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| | `' / /'
    |  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |   / /
    | |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |_./ /___
    \_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)_____/
    
                Fluent Bit v4.2   Direct Routes Ahead
            Celebrating 10 Years of Open, Fluent Innovation!
    
    [2026/04/30 08:34:22.133493631] [ info] switching to background mode (PID=28685)
    Log Forwarder was not started successfully
    
    2026-04-30 08:34:24 - [INFO] Preparing Database Protector installation...
    2026-04-30 08:34:24 - [INFO] Installing/Upgrading DBP...
    2026-04-30 08:34:24 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    
    This will install the teradata objects on your computer
    Do you want to continue? [yes or no]
    Enter installation directory.
    A new directory will be created in the installation directory.
    [/opt/protegrity]:
    Unpacking...
    Extracting files...
    Enter name of database where the UDFs will be installed.
    [PROTEGRITY]:
    Enter maxmimum size of varchar to be allocated by the UDFs.
    NOTE: This is the maximum varchar size allocated by the UDFs
        for latin as well as unicode character set.
        Larger size will affect the performance !!!
        Some applications can also have issues with larger size,
        such as BTEQ, SQL Assistant.
    [500]:
    
    ***********BUFFER LENGTH INITIALIZATION**************
    UDF VARCHAR MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  676  Latin characters
    UDF VARCHAR MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  538  Bytes
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  1356  UNICODE characters
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  1038  Bytes
    
    teradata objects installed in /opt/protegrity/<DBP_version>/databaseprotector/teradata.
    
    2026-04-30 08:34:25 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-04-30 08:34:25 - [INFO] Copying DatabaseProtector to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926075 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:26 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 1 node(s) have connected
    2026-04-30 08:34:26 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-04-30 08:34:26 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 1 node(s) have connected
    All 1 node(s) have connected
    localhost:1022: send completed: 1157 bytes received (1 files/1 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-04-30 08:34:27 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-04-30 08:34:27 - [INFO] Starting new RPAgent on all nodes
    Starting rpagent
    2026-04-30 08:34:27 - [INFO] Successfully launched new RPAgent on all nodes
    2026-04-30 08:34:27 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 20.00.00.05 (64-bit) Thu Apr 30 08:34:27 2026 PID: 30406
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 21 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    Do you want to create the varcharunicode UDFs? (yes/no) [no]:
    
  34. To create the varcharunicode UDFs, type yes.
  35. Press ENTER.
    The script creates the varcharunicode UDFs and completes the installation.
    2026-04-30 08:11:30 - [INFO] Creating varcharunicode UDFs
    BTEQ 20.00.00.05 (64-bit) Thu Apr 30 08:11:31 2026 PID: 24930
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-04-30 08:11:55 - [INFO] Varcharunicode UDFs created successfully
    2026-04-30 08:11:55 - [INFO] Testing UDFs
    BTEQ 20.00.00.05 (64-bit) Thu Apr 30 08:11:55 2026 PID: 25033
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned.
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0
    2026-04-30 08:12:15 - [INFO] Installation successful.
    2026-04-30 08:12:15 - [INFO] All components installed successfully.
    
    2026-04-30 08:12:15 - [INFO] IMPORTANT: Protegrity UDT installation must be handled manually. Refer to product documentation.
    2026-04-30 08:12:15 - [INFO] IMPORTANT: Protegrity Decimal UDF objects installation must be handled manually. Refer to product documentation.
    

Installing the Protector using the install.ini file

This argument requires the install.ini file to be present and updated with the required parameters. The install.ini files contains the installation directories for the components and the endpoints for the Log Forwarder and RPAgent.

A sample output of the install.ini file is listed below.

; =============================================================================
; install.ini - Sample configuration file for Database Protector installation
; =============================================================================
;
; Usage:
;   ./install_pep_teradata_v2.sh --install --install-ini /path/to/install.ini
;
; Notes:
;   - This file is only supported with --install mode (not --upgrade or --silent).
;   - Lines starting with ; or # are treated as comments.
;   - All fields listed below are REQUIRED unless noted otherwise.
;   - Section names and keys are case-insensitive during parsing.
;   - The installer will automatically append the component subdirectory
;     (e.g., /logforwarder, /rpagent, /databaseprotector) under each
;     INSTALLATION_DIR path.
;
; =============================================================================

[Logforwarder]
; Base directory where LogForwarder will be installed.
; The installer will create a "logforwarder" subdirectory under this path.
INSTALLATION_DIR = /opt/protegrity

; Space-separated list of audit store endpoint(s) in host:port format.
; Multiple endpoints can be specified for redundancy.
AUDIT_STORE_ENDPOINTS = <Audit_Store_Endpoint>:9200 <Audit_Store_Endpoint>:9200

[RPAgent]
; Base directory where RPAgent will be installed.
; The installer will create an "rpagent" subdirectory under this path.
INSTALLATION_DIR = /opt/protegrity

; Upstream ESA (Enterprise Security Administrator) host and port.
; Format: <ip_or_hostname>:<port>
; If the port is omitted, the default port 25400 is used.
UPSTREAM_HOST_IP_ADDR_PORT = <ESA_Hostname>:25400

[DatabaseProtector]
; Base directory where DatabaseProtector will be installed.
; The installer will create a "databaseprotector" subdirectory under this path.
INSTALLATION_DIR = /opt/protegrity

; Teradata database name used for creating UDF objects.
DATABASE_NAME = <Database_name_to_install_UDFs>

; Maximum size of VARCHAR to be allocated by the UDFs.
; Must be a positive integer.
MAX_VARCHAR_SIZE = 500

Note: To use any directory for the Database Protector, ensure the directory is available. Otherwise, the installation will fail. Note: The default port for the Audit Store endpoint is 9200. The default port for the RPAgent is 25400. To use any other port, replace the value. Note: For installation/upgrade using the automation script, the components will be installed within a <DBP_version> folder under the specified directory.

To install the protector using the install.ini argument:

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To execute the script with the argument, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --install --install-ini <path_to_install.ini_file>
    
  4. Press ENTER.
    The script performs a pre-check, detects the install.ini file and the prompt to create the UDF appears.
     2026-05-04 03:41:36 - [INFO] ========================================================================
     2026-05-04 03:41:36 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 03:41:36 - [INFO] ========================================================================
    
     2026-05-04 03:41:36 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 03:41:36 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 03:41:36 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 03:41:36 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 03:41:36 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 03:41:36 - [INFO] ==========================================
     2026-05-04 03:41:36 - [INFO] Node accessibility check PASSED
     2026-05-04 03:41:36 - [INFO] All 1 node(s) have connected
    
     <---------------------  localhost  -------------------------------->
     td20sles15
     2026-05-04 03:41:36 - [INFO] ==========================================
    
     2026-05-04 03:41:36 - [INFO] ========================================================================
     2026-05-04 03:41:36 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 03:41:36 - [INFO] ========================================================================
    
     2026-05-04 03:41:36 - [INFO] install.ini detected: /<path_to_install.ini_file>/install.ini
     Do you want to continue and create UDFs?
     To create the UDFs, provide the database credentials  (yes/no) [no]:
    
  5. To create the UDFs, type yes.

    Note: Skipping creation of the UDFs terminates the installation script.

  6. Press ENTER.
    The prompt to enter the database username appears.
    Enter Teradata database username:
    
  7. Enter the username.
  8. Press ENTER.
    The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  9. Enter the password.
  10. Press ENTER.
    The script validates the database and lists the configuration. The prompt to verify the configuration appears.
    2026-05-04 03:41:43 - [INFO] Validating database ...
    2026-05-04 03:42:04 - [INFO] Database validated successfully
    
    2026-05-04 03:42:04 - [INFO] **************************************************************************
    2026-05-04 03:42:04 - [INFO] Installation will be done with following configuration:
    2026-05-04 03:42:04 - [INFO] Mode: install
    2026-05-04 03:42:04 - [INFO] Using configuration from install.ini:
    2026-05-04 03:42:04 - [INFO] Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:42:04 - [INFO] Audit Store Endpoints: <IP_Address>:9200 <IP_Address>:9200
    2026-05-04 03:42:04 - [INFO] RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:42:04 - [INFO] Upstream (ESA) IP Address for RPAgent: <ESA_Hostname>
    2026-05-04 03:42:04 - [INFO] Upstream (ESA) Port for RPAgent: 25400
    2026-05-04 03:42:04 - [INFO] DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:42:04 - [INFO] This is a fresh install.
    2026-05-04 03:42:04 - [INFO] **************************************************************************
    
    2026-05-04 03:42:04 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  11. To proceed with the configuration, type yes.
  12. Press ENTER.
    The script installs the log forwarder. The script then triggers the RPAgent installation script. The prompt to enter ESA token appears.
    2026-05-04 03:42:08 - [INFO] Continuing with installation...
    2026-05-04 03:42:08 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 03:42:08 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    
    Protegrity Log Forwarder installed in /opt/protegrity/<DBP_version>/logforwarder.
    
    2026-05-04 03:42:09 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:42:09 - [INFO] Installing/Upgrading RPAGENT...
    Enter ESA token (leave blank to use username/password):
    
  13. To use the credentials for ESA, press ENTER. The prompt to enter the username appears.
    Enter ESA username:
    
  14. Enter the username.
  15. Press ENTER.
    The prompt to enter the password appears.
    Enter ESA user's password:
    
  16. Enter the password.
  17. Press ENTER.
    The script:
    • validates and downloads the certificates from ESA
    • installs the RPAgent
    • copies the Log Forwarder and RPAgent to all the nodes in the Teradata cluster
    • creates installation directories
    • starts the new Log Forwarder on all the nodes
    • triggers the script to install the database objects
    • installs the database objects
    • copies the objects to all the nodes in the cluster
    • starts the new RPAgent on all the nodes
    • creates the new UDFs The prompt to create the varcharunicode UDFs appears.
    2026-05-04 03:42:16 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    Certificate validation successful.
    Obtaining token from <ESA_Hostname>:25400...
    Downloading certificates from <ESA_Hostname>:25400...
    % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                    Dload  Upload  Total   Spent   Left   Speed
    100  11264 100  11264   0      0  54891      0                              0
    
    Extracting certificates...
    Certificates successfully downloaded and stored in /opt/protegrity/<DBP_version>/rpagent/data
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-05-04 03:42:18 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:42:18 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 03:42:18 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 03:42:18 - [INFO] Creating installation directories on all nodes if not present
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:42:19 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 57934052 bytes received (9 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:42:21 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 03:42:21 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 14787376 bytes received (9 files/3 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:42:22 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 03:42:22 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 03:42:22 - [INFO] Starting new Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Fluent Bit v4.2.2-1.5.1+0.gdfa6.fb-4.2
    * Copyright (C) 2015-2025 The Fluent Bit Authors
    * Fluent Bit is a CNCF graduated project under the Fluent organization
    * https://fluentbit.io
    
    ______ _                  _    ______ _ _             ___   _____
    |  ___| |                | |   | ___ (_) |           /   | / __  \
    | |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| | `' / /'
    |  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |   / /
    | |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |_./ /___
    \_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)_____/
    
                Fluent Bit v4.2   Direct Routes Ahead
            Celebrating 10 Years of Open, Fluent Innovation!
    
    [2026/05/04 03:42:22.850815473] [ info] switching to background mode (PID=2801)
    Log Forwarder was not started successfully
    
    2026-05-04 03:42:24 - [INFO] Preparing Database Protector installation...
    2026-05-04 03:42:24 - [INFO] Installing/Upgrading DBP...
    2026-05-04 03:42:24 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    
    This will install the teradata objects on your computer
    Do you want to continue? [yes or no]
    Enter installation directory.
    A new directory will be created in the installation directory.
    [/opt/protegrity]:
    Unpacking...
    Extracting files...
    Enter name of database where the UDFs will be installed.
    [PROTEGRITY]:
    Enter maxmimum size of varchar to be allocated by the UDFs.
    NOTE: This is the maximum varchar size allocated by the UDFs
        for latin as well as unicode character set.
        Larger size will affect the performance !!!
        Some applications can also have issues with larger size,
        such as BTEQ, SQL Assistant.
    [500]:
    
    ***********BUFFER LENGTH INITIALIZATION**************
    UDF VARCHAR MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  676  Latin characters
    UDF VARCHAR MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  538  Bytes
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  1356  UNICODE characters
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  1038  Bytes
    
    teradata objects installed in /opt/protegrity/<DBP_version>/databaseprotector/teradata.
    
    2026-05-04 03:42:26 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:42:26 - [INFO] Copying DatabaseProtector to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926075 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:42:27 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 1 node(s) have connected
    2026-05-04 03:42:27 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 03:42:27 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 1 node(s) have connected
    All 1 node(s) have connected
    localhost:1022: send completed: 1157 bytes received (1 files/1 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:42:28 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 03:42:28 - [INFO] Starting new RPAgent on all nodes
    Starting rpagent
    2026-05-04 03:42:28 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 03:42:28 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:42:28 2026 PID: 4564
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    Do you want to create the varcharunicode UDFs? (yes/no) [no]:
    
  18. To create the varcharunicode UDFs, type yes.
  19. Press ENTER.
    The script creates the varcharunicode UDFs and completes the installation.
    2026-05-04 03:43:27 - [INFO] Creating varcharunicode UDFs
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:43:27 2026 PID: 5313
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 03:43:50 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 03:43:50 - [INFO] Testing UDFs
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:43:51 2026 PID: 5411
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned.
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0
    2026-05-04 03:44:11 - [INFO] Installation successful.
    2026-05-04 03:44:11 - [INFO] All components installed successfully.
    
    2026-05-04 03:44:11 - [INFO] IMPORTANT: Protegrity UDT installation must be handled manually. Refer to product documentation.
    2026-05-04 03:44:11 - [INFO] IMPORTANT: Protegrity Decimal UDF objects installation must be handled manually. Refer to product documentation.
    

3 - Installing the Protector on Multi Node

The Teradata Data Warehouse Protector build provides an automated script to manage the installation process on a standalone system. The master script internally calls the scripts to install the components. The master script installs the components in the following order:

  1. Log Forwarder
  2. RPAgent
  3. Policy Enforcement Point (Database Protector)

The installation can also be performed manually by executing the individual scripts to install the different components.

The master script is available in the directory where the installation files are extracted. It provides the following arguments:

  • install - installs the components in an interactive mode.
  • upgrade - installs a newer version of the protector with minimal downtime.
  • silent - installs the components in a non-interactive mode.
  • install.ini - installs the components as per the parameters provided in the file.
  • help - lists the arguments available for the script.

In addition, the master script will rollback the installation process if any errors are encountered. The script will revert the changes.

Viewing the Arguments for the Script

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To view the arguments, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --help
    
  4. Press ENTER. The script lists the available arguments.
     Options:
     --install    Use this option when installing the solution for the first time on a machine/host.
                 (i.e., there is no previous installation present)
    
     --upgrade    Use this option when upgrading an existing installation on the machine/host.
    
     --install-ini <file>    (Optional) Provide a path to an install.ini file for silent or pre-configured installations.
                             This option works with --install only.
                             It must not be used with --upgrade or --silent.
                             You can pass this either as:
                             --install-ini /path/to/install.ini
                             or
                             --install-ini=/path/to/install.ini
                             Refer to the product documentation for details about the configuration options available in install.ini.
                             The documentation describes all supported keys, required fields, and example configurations.
     --silent    (Optional) Runs the installation/upgrade in silent mode with minimum interactive prompts.
    
     --help, -h  Display this help message and exit.
    

Installing the Protector using the Interactive Mode

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To execute the script, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --install
    
  4. Press ENTER.
    The script executes pre-checks and the prompt to select the silent mode of installation appears.
     2026-05-04 03:43:56 - [INFO] ========================================================================
     2026-05-04 03:43:56 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 03:43:56 - [INFO] ========================================================================
    
     2026-05-04 03:43:56 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 03:43:56 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 03:43:56 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 03:43:56 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 03:43:56 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 03:43:56 - [INFO] ==========================================
     2026-05-04 03:43:56 - [INFO] Node accessibility check PASSED
     2026-05-04 03:43:56 - [INFO] All 4 node(s) have connected
    
     <---------------------  <node_name>  -------------------------------->
     abyss2
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss4
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss3
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss1
     2026-05-04 03:43:56 - [INFO] ==========================================
    
     2026-05-04 03:43:57 - [INFO] ========================================================================
     2026-05-04 03:43:57 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 03:43:57 - [INFO] ========================================================================
    
     Do you want silent installation? (yes/no) [no]: 
    
  5. To proceed with interactive mode of installation, type no.
  6. Press ENTER.
    The prompt to specify the installation directory for the components appears.
    Do you want to install the new LogForwarder, RPAgent, and DatabaseProtector together in a single directory? (yes/no) [no]:
    
  7. To install the components under a same directory, type yes.
  8. Press ENTER.
    The prompt to enter the installation directory appears.
    Enter new installation directory [/opt/protegrity]:
    
  9. To use the default directory, press ENTER. The prompt to provide credentials to create the UDFs appears.
    Do you want to continue and create UDFs?
    To create the UDFs, provide the database credentials  (yes/no) [no]:
    
  10. To create the UDFs, type yes.

    Note: Skipping creation of the UDFs terminates the upgrade script.

  11. Press ENTER.
    The prompt to enter the database user name appears.
    Enter Teradata database username:
    
  12. Enter the username to login to the database.
  13. Press ENTER.
    The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  14. Enter the password.
  15. Press ENTER.
    The prompt to specify the database to install the UDF appears.
    Enter name of database where the UDFs will be installed [PROTEGRITY]:
    
  16. Enter the database name to install the UDFs.
  17. Press ENTER.
    The prompt to specify the maximum size of varchar to be allocated by the UDFs appears.
    Enter the maximum size of varchar to be allocated by the UDFs [500]:
    
  18. Enter the maximum size of varchar to be allocated by the UDFs.
  19. Press ENTER.
    The script validates the database and the prompt to verify the configuration appears.
    2026-05-04 03:43:56 - [INFO] Validating database ...
    2026-05-04 03:43:56 - [INFO] Database validated successfully
    
    2026-05-04 03:43:56 - [INFO] **************************************************************************
    2026-05-04 03:43:56 - [INFO] Installation will be done with following configuration:
    2026-05-04 03:43:56 - [INFO] Mode: install
    2026-05-04 03:43:56 - [INFO] Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:43:56 - [INFO] RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:43:56 - [INFO] DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:43:56 - [INFO] This is a fresh install.
    2026-05-04 03:43:56 - [INFO] **************************************************************************
    
    2026-05-04 03:43:56 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  20. To continue, type yes.
  21. Press ENTER.
    The script proceeds with the installation and triggers the Log Forwarder installation script. The prompt to enter the Audit Store endpoint appears.
    2026-05-04 03:43:56 - [INFO] Continuing with installation...
    2026-05-04 03:43:56 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 03:43:56 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    Enter the audit store endpoint (host), alternative (host:port) to use another port than the default port 9200:
    
  22. Enter the audit store endpoint.
  23. Press ENTER.
    The prompt to enter additional audit store endpoint appears.
    Audit store endpoints: <ESA_IP_Address>:9200
    Do you want to add another audit store endpoint? [y/n]:
    
  24. To specify additional endpoints, type yes.
  25. Press ENTER.
    The prompt to enter the Audit Store endpoint appears.
    Enter the audit store endpoint (host), alternative (host:port) to use another port than the default port 9200:
    
  26. Enter the audit store endpoint.
  27. Press ENTER.
    The script lists the endpoints that will be added. The prompt to accept and continue the installation appears.
    -------------------------------------------
    These audit store endpoints will be added:
    <ESA_IP_Address>:9200
    <ESA_IP_Address>:9200
    <ESA_IP_Address>:9200
    
    Type 'y' to accept or 'n' to abort installation:
    
  28. To accept the endpoints and proceed, type yes.
  29. Press ENTER.
    The script installs the log forwarder. The script then triggers the RPAgent installation script. The prompt to enter the upstream host name or IP address appears.
    Unpacking...
    Extracting files...
    
    Protegrity Log Forwarder installed in /opt/protegrity/<DBP_version>/logforwarder.
    
    2026-05-04 03:43:56 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:43:56 - [INFO] Installing/Upgrading RPAGENT...
    Please enter upstream host name or IP address, alternative (host:port) to use another port than the default port 25400:
    
  30. Enter the ESA host name.
  31. Press ENTER.
    The prompt to enter ESA token appears.
    Enter ESA token (leave blank to use username/password):
    
  32. To specify the username/password, press ENTER.
    The prompt to enter ESA username appears.
    Enter ESA username:
    
  33. Enter the username to connect to ESA.
  34. Press ENTER.
    The prompt to enter ESA password appears.
    Enter ESA user's password:
    
  35. Enter the password to connect to ESA.
  36. Press ENTER.
    The script:
    • validates and downloads the certificates from ESA
    • installs the RPAgent
    • copies the Log Forwarder and RPAgent to all the nodes in the Teradata cluster
    • creates installation directories
    • starts the new Log Forwarder on all the nodes
    • triggers the script to install the database objects
    • creates the UDFs The prompt to install the varcharunicode UDF appears.
    2026-05-04 03:43:56 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    Certificate validation successful.
    Obtaining token from <ESA_Hostname>:25400...
    Downloading certificates from <ESA_Hostname>:25400...
    % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                    Dload  Upload  Total   Spent   Left   Speed
    100  11264 100  11264   0      0  63570      0                              0
    
    Extracting certificates...
    Certificates successfully downloaded and stored in /opt/protegrity/<DBP_version>/rpagent/data
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-05-04 03:43:56 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:43:56 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 03:43:56 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 03:43:56 - [INFO] Creating installation directories on all nodes if not present
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:43:56 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    localhost:1022: send completed: 57934195 bytes received (9 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:43:56 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 03:43:56 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:43:56 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 03:43:56 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 03:43:56 - [INFO] Starting new Logforwarder on all nodes
    2026-05-04 03:45:39 - [INFO] Preparing Database Protector installation...
    2026-05-04 03:45:39 - [INFO] Installing/Upgrading DBP...
    2026-05-04 03:45:39 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 03:45:40 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:45:40 - [INFO] Copying DatabaseProtector to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:45:41 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 4 node(s) have connected
    2026-05-04 03:45:41 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 03:45:41 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 4 node(s) have connected
    All 4 node(s) have connected
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:45:42 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 03:45:42 - [INFO] Starting new RPAgent on all nodes
    2026-05-04 03:45:42 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 03:45:42 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 17.20.00.08 (64-bit) Mon May  4 03:45:42 2026 PID: 130808
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    Do you want to create the varcharunicode UDFs? (yes/no) [no]:
    
  37. To create the varcharunicode UDFs, type yes.
  38. Press ENTER.
    The script creates the varcharunicode UDFs and completes the installation.
    2026-05-04 03:46:03 - [INFO] Creating varcharunicode UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 03:46:03 2026 PID: 131563
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 03:46:05 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 03:46:05 - [INFO] Testing UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 03:46:05 2026 PID: 131653
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned. 
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0 
    2026-05-04 03:46:05 - [INFO] Installation successful.
    2026-05-04 03:46:05 - [INFO] All components installed successfully.
    
    2026-05-04 03:46:05 - [INFO] IMPORTANT: Protegrity UDT installation must be handled manually. Refer to product documentation.
    2026-05-04 03:46:05 - [INFO] IMPORTANT: Protegrity Decimal UDF objects installation must be handled manually. Refer to product documentation.
    

Installing the Protector using the Silent Mode

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To execute the script, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --install
    
  4. Press ENTER.
    The script executes pre-checks and the prompt to select the silent mode of installation appears.
     2026-05-04 03:54:36 - [INFO] ========================================================================
     2026-05-04 03:54:36 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 03:54:36 - [INFO] ========================================================================
    
     2026-05-04 03:54:36 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 03:54:36 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 03:54:36 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 03:54:36 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 03:54:36 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 03:54:36 - [INFO] ==========================================
     2026-05-04 03:54:36 - [INFO] Node accessibility check PASSED
     2026-05-04 03:54:36 - [INFO] All 4 node(s) have connected
    
     <---------------------  <node_name>  -------------------------------->
     abyss4
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss2
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss3
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss1
     2026-05-04 03:54:36 - [INFO] ==========================================
    
     2026-05-04 03:54:36 - [INFO] ========================================================================
     2026-05-04 03:54:36 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 03:54:36 - [INFO] ========================================================================
    
     Do you want silent installation? (yes/no) [no]:
    
  5. To proceed with silent mode of installation, type yes.
  6. Press ENTER.
    The script uses the default installation directory, /opt/protegrity/, for silent installation. The prompt to create UDFs and provide database credentials appears.
     2026-05-04 03:54:39 - [INFO] You have chosen silent mode. Therefore, /opt/protegrity is considered as base directory for new installation.
     Do you want to continue and create UDFs?
     To create the UDFs, provide the database credentials  (yes/no) [no]: 
    
  7. To create the UDFs, type yes.

    Note: Skipping creation of the UDFs terminates the upgrade script.

  8. Press ENTER.
    The prompt to enter the database username appears.
    Enter Teradata database username:
    
  9. Enter the username.
  10. Press ENTER.
    The prompt to enter the password appears.
    Enter Teradata database user's password:
    
  11. Enter the password.
  12. Press ENTER.
    The prompt to enter the database name appears.
    Enter name of database where the UDFs will be installed [PROTEGRITY]:
    
  13. Enter the database name to install the UDFs.
  14. Press ENTER.
    The prompt to specify the maximum size of varchar to be allocated by the UDFs appears.
    Enter the maximum size of varchar to be allocated by the UDFs [500]:
    
  15. Enter the maximum size of varchar to be allocated by the UDFs.
  16. Press ENTER.
    The script validates the database. The script lists the configuration and the prompt to continue appears.
    2026-05-04 03:54:55 - [INFO] Validating database ...
    2026-05-04 03:54:55 - [INFO] Database validated successfully
    
    2026-05-04 03:54:55 - [INFO] **************************************************************************
    2026-05-04 03:54:55 - [INFO] Installation will be done with following configuration:
    2026-05-04 03:54:55 - [INFO] Mode: install
    2026-05-04 03:54:55 - [INFO] Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:54:55 - [INFO] RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:54:55 - [INFO] DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:54:55 - [INFO] This is a fresh install.
    2026-05-04 03:54:55 - [INFO] **************************************************************************
    
    2026-05-04 03:54:55 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  17. To proceed with the configuration, type yes.
  18. Press ENTER.
    The script proceeds with the installation and completes the Log Forwarder installation. The prompt to enter the upstream host name or IP address appears.
    2026-05-04 03:55:03 - [INFO] Continuing with installation...
    2026-05-04 03:55:03 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 03:55:03 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 03:55:23 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:55:23 - [INFO] Installing/Upgrading RPAGENT...
    Please enter upstream host name or IP address, alternative (host:port) to use another port than the default port 25400:
    
  19. Enter the ESA hostname.
  20. Press ENTER.
    The prompt to enter ESA token appears.
    Enter ESA token (leave blank to use username/password):
    
  21. To specify the username/password, press ENTER.
    The prompt to enter ESA username appears.
    Enter ESA username:
    
  22. Enter the username to connect to ESA.
  23. Press ENTER.
    The prompt to enter ESA password appears.
    Enter ESA user's password:
    
  24. Enter the password to connect to ESA.
  25. Press ENTER.
    The script:
    • validates and downloads the certificates from ESA
    • installs the RPAgent
    • copies the Log Forwarder and RPAgent to all the nodes in the Teradata cluster
    • creates installation directories
    • starts the new Log Forwarder on all the nodes
    • triggers the script to install the database objects
    • installs the database objects
    • copies the objects to all the nodes in the cluster
    • starts the new RPAgent on all the nodes
    • creates the new UDFs The prompt to create the varcharunicode UDFs appears.
    2026-05-04 03:55:43 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    Certificate validation successful.
    Obtaining token from <ESA_Hostname>:25400...
    Downloading certificates from <ESA_Hostname>:25400...
    % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                    Dload  Upload  Total   Spent   Left   Speed
    100  11264 100  11264   0      0  63570      0                              0
    
    Extracting certificates...
    Certificates successfully downloaded and stored in /opt/protegrity/<DBP_version>/rpagent/data
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-05-04 03:55:51 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:55:51 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 03:55:51 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 03:55:51 - [INFO] Creating installation directories on all nodes if not present
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:55:52 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    <node_name>: send completed: 57933910 bytes received (9 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:55:53 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 03:55:53 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787336 bytes received (9 files/3 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:55:54 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 03:55:54 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 03:55:54 - [INFO] Starting new Logforwarder on all nodes
    2026-05-04 03:55:56 - [INFO] Preparing Database Protector installation...
    2026-05-04 03:55:56 - [INFO] Installing/Upgrading DBP...
    2026-05-04 03:55:56 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 03:55:57 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:55:57 - [INFO] Copying DatabaseProtector to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    <node_name>: send completed: 8926081 bytes received (16 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:55:57 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 4 node(s) have connected
    2026-05-04 03:55:57 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 03:55:57 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 4 node(s) have connected
    All 4 node(s) have connected
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 03:55:58 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 03:55:58 - [INFO] Starting new RPAgent on all nodes
    2026-05-04 03:55:58 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 03:55:58 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 17.20.00.08 (64-bit) Mon May  4 03:55:58 2026 PID: 138943
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    Do you want to create the varcharunicode UDFs? (yes/no) [no]:
    
  26. To create the varcharunicode UDFs, type yes.
  27. Press ENTER.
    The script installs the varcharunicode UDFs and completes the installation.
    2026-05-04 03:58:43 - [INFO] Creating varcharunicode UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 03:58:43 2026 PID: 140061
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 03:58:45 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 03:58:45 - [INFO] Testing UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 03:58:45 2026 PID: 140151
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned. 
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0 
    2026-05-04 03:58:45 - [INFO] Installation successful.
    2026-05-04 03:58:45 - [INFO] All components installed successfully.
    
    2026-05-04 03:58:45 - [INFO] IMPORTANT: Protegrity UDT installation must be handled manually. Refer to product documentation.
    2026-05-04 03:58:45 - [INFO] IMPORTANT: Protegrity Decimal UDF objects installation must be handled manually. Refer to product documentation.
    

Installing the Protector using the install.ini file

This argument requires the install.ini file to be present and updated with the required parameters. The install.ini files contains the installation directories for the components and the endpoints for the Log Forwarder and RPAgent.

A sample output of the install.ini file is listed below.

; =============================================================================
; install.ini - Sample configuration file for Database Protector installation
; =============================================================================
;
; Usage:
;   ./install_pep_teradata_v2.sh --install --install-ini /path/to/install.ini
;
; Notes:
;   - This file is only supported with --install mode (not --upgrade or --silent).
;   - Lines starting with ; or # are treated as comments.
;   - All fields listed below are REQUIRED unless noted otherwise.
;   - Section names and keys are case-insensitive during parsing.
;   - The installer will automatically append the component subdirectory
;     (e.g., /logforwarder, /rpagent, /databaseprotector) under each
;     INSTALLATION_DIR path.
;
; =============================================================================

[Logforwarder]
; Base directory where LogForwarder will be installed.
; The installer will create a "logforwarder" subdirectory under this path.
INSTALLATION_DIR = /opt/protegrity

; Space-separated list of audit store endpoint(s) in host:port format.
; Multiple endpoints can be specified for redundancy.
AUDIT_STORE_ENDPOINTS = <Audit_Store_Endpoint>:9200 <Audit_Store_Endpoint>:9200

[RPAgent]
; Base directory where RPAgent will be installed.
; The installer will create an "rpagent" subdirectory under this path.
INSTALLATION_DIR = /opt/protegrity

; Upstream ESA (Enterprise Security Administrator) host and port.
; Format: <ip_or_hostname>:<port>
; If the port is omitted, the default port 25400 is used.
UPSTREAM_HOST_IP_ADDR_PORT = <ESA_Hostname>:25400

[DatabaseProtector]
; Base directory where DatabaseProtector will be installed.
; The installer will create a "databaseprotector" subdirectory under this path.
INSTALLATION_DIR = /opt/protegrity

; Teradata database name used for creating UDF objects.
DATABASE_NAME = <Database_name_to_install_UDFs>

; Maximum size of VARCHAR to be allocated by the UDFs.
; Must be a positive integer.
MAX_VARCHAR_SIZE = 500

Note: To use any directory for the Database Protector, ensure the directory is available. Otherwise, the installation will fail. Note: The default port for the Audit Store endpoint is 9200. The default port for the RPAgent is 25400. To use any other port, replace the value.

To install the protector using the install.ini argument:

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To execute the script with the argument, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --install --install-ini <path_to_install.ini_file>
    
  4. Press ENTER.
    The script performs a pre-check, detects the install.ini file and the prompt to create the UDF appears.
     2026-05-04 04:11:01 - [INFO] ========================================================================
     2026-05-04 04:11:01 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 04:11:01 - [INFO] ========================================================================
    
     2026-05-04 04:11:01 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 04:11:01 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 04:11:01 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 04:11:01 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 04:11:01 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 04:11:01 - [INFO] ==========================================
     2026-05-04 04:11:01 - [INFO] Node accessibility check PASSED
     2026-05-04 04:11:01 - [INFO] All 4 node(s) have connected
    
     <---------------------  <node_name>  -------------------------------->
     abyss4
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss3
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss2
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss1
     2026-05-04 04:11:01 - [INFO] ==========================================
    
     2026-05-04 04:11:01 - [INFO] ========================================================================
     2026-05-04 04:11:01 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 04:11:01 - [INFO] ========================================================================
    
     2026-05-04 04:11:01 - [INFO] install.ini detected: /<path_to_install.ini_file>/install.ini
     Do you want to continue and create UDFs?
     To create the UDFs, provide the database credentials  (yes/no) [no]: 
    
  5. To create the UDFs, type yes.
  6. Press ENTER.
    The prompt to enter the database username appears.
    Enter Teradata database username:
    
  7. Enter the username.
  8. Press ENTER.
    The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  9. Enter the password.
  10. Press ENTER.
    The script validates the database and lists the configuration. The prompt to verify the configuration appears.
    2026-05-04 04:11:12 - [INFO] Validating database ...
    2026-05-04 04:11:12 - [INFO] Database validated successfully
    
    2026-05-04 04:11:12 - [INFO] **************************************************************************
    2026-05-04 04:11:12 - [INFO] Installation will be done with following configuration:
    2026-05-04 04:11:12 - [INFO] Mode: install
    2026-05-04 04:11:12 - [INFO] Using configuration from install.ini: 
    2026-05-04 04:11:12 - [INFO] Logforwarder Installation Directory: /home/<DBP_version>
    2026-05-04 04:11:12 - [INFO] Audit Store Endpoints: 10.25.61.133:9443 10.25.61.135:9443 10.25.61.136:9443
    2026-05-04 04:11:12 - [INFO] RPAgent Installation Directory: /home/<DBP_version>
    2026-05-04 04:11:12 - [INFO] Upstream (ESA) IP Address for RPAgent: 10.25.61.135
    2026-05-04 04:11:12 - [INFO] Upstream (ESA) Port for RPAgent: 25400
    2026-05-04 04:11:12 - [INFO] DatabaseProtector Installation Directory: /home/<DBP_version>
    2026-05-04 04:11:12 - [INFO] This is a fresh install.
    2026-05-04 04:11:12 - [INFO] **************************************************************************
    
    2026-05-04 04:11:12 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  11. To proceed with the configuration, type yes.
  12. Press ENTER.
    The script installs the log forwarder. The script then triggers the RPAgent installation script. The prompt to enter ESA token appears.
    2026-05-04 04:11:46 - [INFO] Continuing with installation...
    2026-05-04 04:11:46 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 04:11:46 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:11:47 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:11:47 - [INFO] Installing/Upgrading RPAGENT...
    Enter ESA token (leave blank to use username/password):
    
  13. To use the credentials for ESA, press ENTER.
    The prompt to enter the username appears.
    Enter ESA username:
    
  14. Enter the username.
  15. Press ENTER.
    The prompt to enter the password appears.
    Enter ESA user's password:
    
  16. Enter the password.
  17. Press ENTER.
    The script:
    • validates and downloads the certificates from ESA
    • installs the RPAgent
    • copies the Log Forwarder and RPAgent to all the nodes in the Teradata cluster
    • creates installation directories
    • starts the new Log Forwarder on all the nodes
    • triggers the script to install the database objects
    • creates the UDFs The prompt to install the varcharunicode UDF appears.
    2026-05-04 04:12:08 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    Certificate validation successful.
    Obtaining token from <ESA_Hostname>:25400...
    Downloading certificates from <ESA_Hostname>:25400...
    % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                    Dload  Upload  Total   Spent   Left   Speed
    100  11264 100  11264   0      0  54891      0                              0
    
    Extracting certificates...
    Certificates successfully downloaded and stored in /opt/protegrity/<DBP_version>/rpagent/data
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-05-04 04:12:14 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:12:14 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 04:12:14 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 04:12:14 - [INFO] Creating installation directories on all nodes if not present
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:12:14 - [INFO] Copying Logforwarder directory /home/<DBP_version>/logforwarder to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 57934078 bytes received (9 files/5 directories)
    <node_name>: send completed: 57934078 bytes received (9 files/5 directories)
    <node_name>: send completed: 57934078 bytes received (9 files/5 directories)
    <node_name>: send completed: 57934078 bytes received (9 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:12:15 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 04:12:15 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 14787256 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787256 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787256 bytes received (9 files/3 directories)
    <node_name>: send completed: 14787256 bytes received (9 files/3 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:12:16 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 04:12:16 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 04:12:16 - [INFO] Starting new Logforwarder on all nodes
    2026-05-04 04:12:19 - [INFO] Preparing Database Protector installation...
    2026-05-04 04:12:19 - [INFO] Installing/Upgrading DBP...
    2026-05-04 04:12:19 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:12:19 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:12:19 - [INFO] Copying DatabaseProtector to all nodes
    All 4 node(s) have connected
    <node_name>: send completed: 8924920 bytes received (16 files/5 directories)
    <node_name>: send completed: 8924920 bytes received (16 files/5 directories)
    <node_name>: send completed: 8924920 bytes received (16 files/5 directories)
    <node_name>: send completed: 8924920 bytes received (16 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:12:20 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 4 node(s) have connected
    2026-05-04 04:12:20 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 04:12:20 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 4 node(s) have connected
    All 4 node(s) have connected
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>: send completed: 1157 bytes received (1 files/1 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:12:21 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 04:12:21 - [INFO] Starting new RPAgent on all nodes
    2026-05-04 04:12:21 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 04:12:21 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:12:21 2026 PID: 143569
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database testdb;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /home/<DBP_version>/databaseprotector/teradata/sqlscripts/createobjec
    ts.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    Do you want to create the varcharunicode UDFs? (yes/no) [no]:
    
  18. To create the varcharunicode UDFs, type yes.
  19. Press ENTER.
    The script creates the varcharunicode UDFs and completes the installation.
    2026-05-04 04:12:44 - [INFO] Creating varcharunicode UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:12:44 2026 PID: 144325
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database testdb;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /home/<DBP_version>/databaseprotector/teradata/sqlscripts/createvarch
    arunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 04:12:46 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 04:12:46 - [INFO] Testing UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:12:46 2026 PID: 144416
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database testdb;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned. 
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0 
    2026-05-04 04:12:46 - [INFO] Installation successful.
    2026-05-04 04:12:46 - [INFO] All components installed successfully.
    
    2026-05-04 04:12:46 - [INFO] IMPORTANT: Protegrity UDT installation must be handled manually. Refer to product documentation.
    2026-05-04 04:12:46 - [INFO] IMPORTANT: Protegrity Decimal UDF objects installation must be handled manually. Refer to product documentation.
    

4 - Creating the User Defined Functions

Before creating the UDFs, ensure that the following prerequisites are met:

  • The Teradata Data Warehouse Protector is installed on all the nodes.

  • When installing the Teradata objects, ensure to specify the maximum data size to be allocated by the UDFs. This value should not exceed 500 MB.

    • While calculating the data size, ensure to consider the space for the overheads.
      For example:
      • For the data that would be tokenized using non-length preserving tokens, add an overhead of approximately 6% to the original data size.
      • For the AES-encrypted data, with the blocks of 16 bytes, add an overhead of an additional 16 bytes to include CRC or IV.
  • The database user that installs the UDFs must have the following privileges:

    • GRANT CREATE FUNCTION ON PROTEGRITY to USER1;
      
    • GRANT ALTER FUNCTION ON PROTEGRITY to USER1;
      

    where, - USER1 is the database user who install the UDFs. - PROTEGRITY is the name of the database where the UDFs are installed. - ROLE1 is the group to which the USER1 belongs.
    Ensure that the database user who installs the UDFs is part of the ROLE1 group.

  • To grant privileges to a database user to perform database administration functions, run the following query:

    GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, STATISTICS, DUMP, RESTORE, CHECKPOINT, SHOW, EXECUTE PROCEDURE, ALTER PROCEDURE, EXECUTE FUNCTION, ALTER FUNCTION, ALTER EXTERNAL PROCEDURE, CREATE OWNER PROCEDURE, CREATE TABLE, CREATE VIEW, CREATE MACRO, CREATE TRIGGER, CREATE PROCEDURE, CREATE FUNCTION, DROP TABLE, DROP VIEW, DROP MACRO, DROP TRIGGER, DROP PROCEDURE, DROP FUNCTION ON TESTDB TO ROLE1;
    
  • To distribute the installation on all the nodes while installing the UDF in a multi-node environment, execute either of the following commands:

    • UNIX commands:
      psh mkdir /opt/protegrity/
      
    • PUT utility:
      pcl -send /opt/protegrity/* /opt/protegrity/
      

To create the UDFs for Teradata:

  1. Log in to the database server as the user with the required permissions.

  2. Navigate to the /opt/protegrity/databaseprotector/teradata/sqlscripts/ directory.

  3. To view the .sql queries, run the following command:

    /opt/protegrity/databaseprotector/teradata/sqlscripts/ # ls -ltr
    
  4. Press ENTER.
    The list of available queries in the .sql file format appears.

     total 164
     -rw-r----- 1 tdatuser tdtrusted 8939 createdecimalobjects.sql
     -rw-r----- 1 tdatuser tdtrusted 2560 dropobjects.sql
     -rw-r----- 1 tdatuser tdtrusted 781 dropvarcharunicode.sql
     -rw-r----- 1 tdatuser tdtrusted 67128 createobjects.sql
     -rw-r----- 1 tdatuser tdtrusted 10294 createvarcharunicode.sql
     -rw-r----- 1 tdatuser tdtrusted 8401 createdecimalobjects_a.sql
     -rw-r----- 1 tdatuser tdtrusted 793 dropvarcharunicode_a.sql
     -rw-r----- 1 tdatuser tdtrusted 1875 dropobjects_a.sql
     -rw-r----- 1 tdatuser tdtrusted 19643 createobjects_a.sql
     -rw-r----- 1 tdatuser tdtrusted 5078 createvarcharunicode_a.sql
     -rw-r----- 1 tdatuser tdtrusted 5300 testscript.sql
     -rw-r----- 1 tdatuser tdtrusted 3558 sample_tok.sql
     -rw-r----- 1 tdatuser tdtrusted 3324 sample_enc.sql
    
  5. To start the bteq utility, run the following command:

    /opt/protegrity/databaseprotector/teradata/sqlscripts/ # bteq
    
  6. Press ENTER.
    The prompt to log in to the database appears.

    Enter your logon or BTEQ command:
    
  7. To log in to the database, run the following command:

    .logon < username >
    
  8. Press ENTER.
    The prompt to enter the database password appears.

    Password:
    
  9. Enter the database password.

  10. Press ENTER.
    The connection to the Teradata database is established successfully.

    *** Logon successfully completed.
    
  11. To create the UDFs, execute the following query:

    .run file=createobjects.sql
    
  12. Press ENTER.
    The script creates the UDFs and the following message for each of the created UDF appears.

    *** Function has been created.
    *** Warning: 5607 Check output for possible warnings encountered in compiling and/or linking UDF/XSP/UDM/UDT.
    *** Total elapsed time was 1 second.
    
  13. To create the Varchar Unicode UDFs, execute the following query:

    .run file=createvarcharunicode.sql
    
  14. Press ENTER.
    The script creates the UDFs and the following message for each of the created UDF appears.

    *** Function has been created.
    *** Warning: 5607 Check output for possible warnings encountered in compiling and/or linking UDF/XSP/UDM/UDT.
    *** Total elapsed time was 1 second.
    
  15. To create the Decimal UDFs, execute the following query:

    .run file=createdecimal.sql
    
  16. Press ENTER.
    The script creates the Decimal UDFs and the following message for each of the created UDF appears.

    *** Function has been created.
    *** Warning: 5607 Check output for possible warnings encountered in compiling and/or linking UDF/XSP/UDM/UDT.
    *** Total elapsed time was 1 second.
    

    Note: For more information about the User Defined Functions (UDFs) for Teradata, refer to User Defined Functions and API.

5 - User Defined Types

Installing the User Defined Types

The UDTs support the creation of data-types that can be used as pre-defined data-types.

To install the UDT for Teradata:

  1. Log in to the database server as the user with the required permissions.
  2. Navigate to the /opt/protegrity/ directory.
  3. To install the UDT for Teradata, run the following command:
    ./PepTeradata_UDTSetup_Linux_x64_<DBP_version>.sh
    
  4. Press ENTER.
    The prompt to continue the installation appears.
    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    This will install the teradata user defined types on your computer
    Do you want to continue? [yes or no]
    
  5. To proceed, type yes.
  6. Press ENTER. The script extracts the files and installs the data types in the default directory. The script also sets the permissions for the data types.
    [/opt/protegrity]:
    Unpacking...
    To get started with UDTs, please run /opt/protegrity/databaseprotector/teradata
    generate_udt_scripts.sh.
    Teradata UDTs installed in /opt/protegrity/databaseprotector/teradata.
    Permission for /opt/protegrity/databaseprotector/teradata is successfully set.
    

Creating the User Defined Types

The Teradata Data Warehouse Protector automatically creates the To-SQL and From-SQL transform, the ordering, and the necessary casts for a distinct UDT once the CREATE TYPE statement is issued.

On the Data Warehouse Protector installation, the /databaseprotector/teradata/udt/ directory is created with the following files:

  • generate_udt_scripts.sh is an executable file that generates UDT scripts
  • pepteradataudt.plm is a library that contains protect and unprotect functions for UDT usage.

The generate_udt_scripts.sh script generates UDT scripts using the following command:

/opt/protegrity/databaseprotector/teradata/udt # ./generate_udt_scripts.sh --help

Protegrity Data Security Platform - Teradata UDT Scripts
Usage: generate_udt_scripts udtname dataelement scid dbtype
udtname    : UDT Name
dataelement: Data Element
scid       : Security Coordinate ID
dbtype     : Database data type, must be one of: bigint,date,float,integer,varchar

The following are some limitations for the UDT arguments:

  • Udtname – any applicable name
  • Dataelement – DE deployed
  • Scid – applicable security coordinate (0 by default)
  • Dbtype – one of the data types bigint, date, float, integer, varchar.

Important: The scid parameter is no longer used and is retained for compatibility purpose only.

To create the User Defined Types:

  1. Log in to the server as the user with the required permissions.

  2. Navigate to the /opt/protegrity/databaseprotector/teradata/udt/ directory.

  3. To view the files and directories in the ../udt/ directory, run the following command:

    /opt/protegrity/databaseprotector/udt # ls 
    
  4. Press ENTER. The list of available content appears.

    /opt/protegrity/databaseprotector/teradata/udt # ls
    generate_udt_scripts.sh  pepteradataudt.plm  sqlscripts
    
  5. To generate the UDT scripts required for creating the UDTs, run the following command:

    ./generate_udt_scripts.sh <udtname> <dataelement> <scid> <dbtype>
    

    For example:

    ./generate_udt_scripts.sh UDT_VARCHAR AES128 0 varchar
    
  6. Press ENTER. The script generates the following .sql queries for the UDTs in the /opt/protegrity/databaseprotector/teradata/udt directory.

    create_UDT_VARCHAR.sql
    drop_UDT_VARCHAR.sql
    

    Note: It is recommended to use the data element names in the upper-case.

    Note: Modify the .sql queries using the bteq utility for error handling.

  7. To start the bteq utility, run the following command:

    /opt/protegrity/databaseprotector/teradata/sqlscripts # bteq
    
  8. Press ENTER. The prompt to log in to the database appears.

    Enter your logon or BTEQ command:
    
  9. To log in to the database, run the following command:

    .logon <username>
    
  10. Press ENTER. The prompt to enter the database password appears.

    Password: 
    
  11. Enter the database password.

  12. Press ENTER. The connection to the Teradata Data Warehouse is established successfully.

    *** Logon successfully completed.
    
  13. To create the UDTs, run the following query:

    .run file=create_UDT_VARCHAR.sql
    
  14. Press ENTER. The query creates the UDTs and the following message for each of the created UDT appears.

    *** Function has been created. 
    *** Warning: 5607 Check output for possible warnings encountered in compiling and/or linking UDF/XSP/UDM/UDT.
    *** Total elapsed time was 1 second.
    

    Note: It is recommended to create only one UDT for each data type.
    Creating an additional UDT, with a basic data type that is used by an existing UDT, results in a linked error.

  15. To grant the access permissions to the UDTs, execute the following SQL statements using the bteq utility.

    1. To provide the execute access to the UDTs, run the following command:

      chmod 755 create_UDT_VARCHAR.sql
      
    2. Press ENTER.

    3. To provide the UDTUSAGE access for the UDTs to public with a GRANT option, run the following query:

      GRANT UDTUSAGE ON SYSUDTLIB TO PUBLIC WITH GRANT OPTION;
      
    4. Press ENTER.

    5. To provide the execute function for all the UDTs to public with a GRANT option, run the following query:

      GRANT ALL ON TYPE SYSUDTLIB.UDT_VARCHAR TO PUBLIC WITH GRANT OPTION;
      

      The protect/unprotect operations for the UDTs must be executed using the bteq utility.

    6. Press ENTER. The script creates the UDTs and grants access permissions using the SQL statements.