Teradata Wallet

Teradata Wallet es una herramienta cliente bastante rupestre que sirve para poder hacer conexiones a Teradata en ‘scripts‘ (bteq, fatsload, multiload, arcmain… todos sobre CLIV2) de forma que no haya que tener las contraseñas escritas ‘en claro’ en las conexiones de dichos ‘scripts‘.

Apareció hará un par de años, y el principal problema era que no había ninguna documentación sobre cómo utilizarla. Con el tiempo han ido apareciendo algunos artículos y con esto y con el habitual ensayo-error he conseguido entender un poco cómo funciona.

Teradata Wallet no es más que un contenedor de pares atributo-valor en los cuales el valor se almacena cifrado y se invoca mediante (el nombre de) su atributo. Así se consigue evitar la codificación de las contraseñas en los ‘scripts‘ (‘hardcoded passwords‘). Cada usuario de un sistema tendrá su propio ‘wallet‘ (billetera) con sus atributos-valores que pueden ser invocados mediante llamadas simples a la herramienta en la forma “$tdwallet(atributo)”.

La instalación es un “rpm” que se instala con un simple “rpm -ivh”. No obstante, hay que tener en cuenta un par de cosas:

  • Teradata Wallet debe ser instalado con la misma versión de las TTU’s existentes. Si, por ejemplo, instalamos un Teradata Wallet 14.10 sobre una instalación de TTU’s 14.0 las conexiones a Teradata fallarán con “*** Failure 8017 The UserId, Password or Account is invalid.”
  • El rpm debe ser instalado como ‘root‘.

Vamos a ver un ejemplo de cómo funciona.

Supongamos que tenemos un ‘script’ bteq que en su primera línea realiza una conexión al Teradata local haciendo “.LOGON localhost/carlos,micontraseña”

Mediante la creación de un par tributo-valor en el Teradata Wallet podemos evitar tener que poner la contraseña en claro en la conexión:

carlos@TDExpress1403_Sles10:~> tdwallet add password_local
Enter desired value for the string named "password_local":
String named "password_local" added.

Sustituímos en el ‘script’ la contraseña por una llamada a tdwallet con el nuevo atributo creado:

carlos@TDExpress1403_Sles10:~> cat prueba.btq
.LOGON localhost/carlos,$tdwallet(password_local)
SELECT DATE;
.LOGOFF;
carlos@TDExpress1403_Sles10:~>

Y ya sólo queda probarlo:

carlos@TDExpress1403_Sles10:~> bteq < prueba.btq
BTEQ 14.00.00.05 Wed Aug 14 11:59:02 2013

+---------+---------+---------+---------+---------+---------+---------+----
.LOGON localhost/carlos,

 *** Logon successfully completed.
 *** Teradata Database Release is 14.00.03.02
 *** Teradata Database Version is 14.00.03.02
 *** Transaction Semantics are BTET.
 *** Session Character Set Name is 'ASCII'.

 *** Total elapsed time was 1 second.

+---------+---------+---------+---------+---------+---------+---------+----
SELECT DATE;

 *** Query completed. One row found. One column returned.
 *** Total elapsed time was 2 seconds.

    Date
--------
13/08/14

+---------+---------+---------+---------+---------+---------+---------+----
.LOGOFF;
 *** You are now logged off from the DBC.
+---------+---------+---------+---------+---------+---------+---------+----
 *** Warning: EOF on INPUT stream.
 *** BTEQ exiting due to EOF on stdin.

 *** Exiting BTEQ...
 *** RC (return code) = 0

Para Teradata la conexión no ha cambiado, pues recibe la contraseña de la misma manera que antes. La diferencia es que ahora no hace falta que esté en el ‘script’.

Teradata Wallet no sólo vale para almacenar contraseñas, también puede almacenar usuarios o cualquier otra información que se necesite. Cuando la herramienta trata el ‘script‘ las llamadas a $tdwallet(atributo) se expanden de la misma manera que ocurre con las variables en los ‘scripts‘ de ‘bash‘. Así pues, se podrían distribuir ‘scripts‘ idénticos a usuarios distintos con llamadas que el ‘wallet‘ de cada usuario resolvería de forma independiente. P. ej.: “.LOGON $tdwallet(tdsystem)/$tdwallet(tduser),$tdwallet(tdpassword)”

Saludos.

Carlos.

2 respuestas a Teradata Wallet

  1. pablo dice:

    Y gracias por la data

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: