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/password@desadb << 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:
¿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
0 Comments