¿Qué es y cómo usar Oracle Wallet?

0
117
oracle wallet

Oracle Wallet es un método para administrar credenciales de bases de datos en varios dominios y en las capas de orígenes de datos de los servidores de aplicaciones.

Oracle Wallet permite actualizar las credenciales de base de datos actualizando la “cartera” en lugar de tener que cambiar todas las definiciones de los orígenes de datos individualmente. Esto se logra utilizando una cadena de conexión de base de datos en la definición de origen de datos que posteriormente se resuelve mediante una entrada en la “cartera”.

El Wallet es un directorio dentro del servidor donde están escritas las contraseñas (en forma encriptada) por el comando mkstore. Paso seguido se le indica a la base de datos dónde encontrar el Wallet configurando parámetros específicos en el archivo sqlnet.ora y recuperar/usar una contraseña almacenada haciendo referencia a un alias TNS configurado en su archivo tnsnames.ora. Por lo que no hay servicios que debas iniciar o detener, ni debes instalar nada en particular.

Para entender la necesidad de Oracle Wallet no existe mejor ejemplo que el uso de archivos  shell script dentro de tu servidor que invocan sentencias sql o plsql para ejecutar un acción en particular dentro de la Base de Datos.

#!/bin/sh
sqlplus usuario/[email protected] << EOF > ./output.log
SELECT sysdate FROM DUAL;
EOF

En este ejemplo se denota que queda a la vista de cualquier usuario el usuario y password para conectarse a dicha Base de Datos.

Con esto podemos resumir los beneficios de Oracle Wallet de la siguiente manera:

Beneficios Oracle Wallet

¿Cómo crear un Wallet?

Para crear un Wallet solo debes utilizar el comando mkstore dentro de un directorio vacío de la siguiente manera:

mkdir -p /oracle/admin/desadb/wallet
mkstore -wrl /oracle/admin/desadb/wallet -create

Se le pedirá una contraseña para asegurar la cartera. Asegúrese de que es algo seguro y registre la contraseña en su almacén central de contraseñas.

A continuación, agrega las siguientes líneas al archivo de configuración de sqlnet.ora:

SQLNET.WALLET_OVERRIDE = TRUE
WALLET_LOCATION=(
  SOURCE=(METHOD=FILE)
  (METHOD_DATA=(DIRECTORY=/oracle/admin/desadb/wallet))
)

Agregar un nombre de usuario y contraseña a el Wallet

Antes de agregar el nombre de usuario y la contraseña, creamos un alias en el archivo tnsnames.ora que se utilizará cuando queramos iniciar sesión con las credenciales almacenadas. Sólo se puede almacenar una contraseña en la carpeta por alias TNS (en nuestro ejemplo crearemos un alias denominado “desa”)

# Cadena de conexión para DBFS Oracle Wallet
desa =
(DESCRIPCIÓN =
(ADDRESS = (PROTOCOL = TCP) (HOST = arbo.com.ve) (PORT = 1521))
(CONNECT_DATA = (SID = desadb))
)

Ahora, para agregar un nombre de usuario y una contraseña a un Wallet existente, utiliza el comando mkstore con la opción -createCredential de la siguiente manera:

mkstore -wrl <wallet_location> -createCredential <TNS_alias> <username> <password>

# Ejemplo:
mkstore -wrl /oracle/admin/desadb/wallet -createCredential desa usuario password

¿Cómo probar el Wallet?

Eso es todo, tu Wallet ha sido creado y se ha almacenado un nombre de usuario y una contraseña dentro de él. Ahora todo lo que necesitas hacer es probarlo usando el alias TNS que configuraste (desa en nuestro ejemplo)

sqlplus /@desa

¿Cómo administrar el Wallet?

Para ver el listado de credenciales almacenadas en la cartera

mkstore -wrl <wallet_location> -listCredential
# Ejemplo
mkstore -wrl /oracle/admin/desadb/wallet -listCredential

Modificación de credenciales almacenadas en la cartera

mkstore -wrl <wallet_location> -modifyCredential <dbase_alias> <username> <password>
# Ejemplo
mkstore -wrl /oracle/admin/desadb/wallet -modifyCredential desa usuario password2

Eliminación de credenciales almacenadas en la cartera

mkstore -wrl <wallet_location> -deleteCredential <db_alias>
# Ejemplo
mkstore -wrl /oracle/admin/desadb/wallet -deleteCredential desa

Eliminación de la cartera completa

rm -rf <wallet_location>
# Ejemplo
rm -rf /oracle/admin/desadb/wallet

Para ver mas información sobre Oracle Wallet puedes consultar el siguiente artículo de dba-resources

Comments

comments

Leave a Reply