Oracle Cloud Infrastructure posee muchas opciones para crear distintos tipos de base de datos (bases de datos autónomas como ATP, ADW, JDB, APEX; Exadata CS; instancias basadas en VM o incluso una instalación propia usando un nodo de Compute). Todo el entorno de trabajo de Oracle Cloud Infrastructure está diseñado para administrar nuestros recursos en la nube, pero hace que trabajar (por ejemplo, conectarnos y ejecutar una consulta) en una base de datos en particular sea una tarea algo engorrosa, ya que tenemos que ubicar la instancia deseada, ir a la solapa "Tools" y posteriormente iniciar Database Actions (la version web de SQL Developer y otras herramientas para interactuar con la base de datos).
Recientemente, esto ha sido simplificado ya que se incluyó un botón de Database Actions en el menu principal de las instancias de base de datos, como podemos ver a continuación:
Pero aun así resulta complejo cuando estamos trabajando con varias bases de datos, ya que debemos ir saliendo de una y entrando en otra. Es por ello que recientemente se anunciaron nuevos servicios, agrupados en "Database Tools Service", que facilitan el uso de las bases de datos que tengamos en nuestra cuenta de Oracle Cloud Infrastructure.
Estos servicios están incluidos en Oracle Always Free por lo que pueden ser usados por cualquier tipo de cuenta OCI, y están disponibles navegando en el menu principal de Oracle Cloud, dentro de la opción "Developer Services", como vemos en el menú:
Conexiones (Connections)
Este componente permite definir en forma sencilla una conexión a una base de datos disponible en OCI, tal como lo haríamos en cualquier herramienta (SQL Developer, TOAD, Visual Studio) instalada localmente, pero en vez de guardar esa información localmente la misma se guarda en nuestra cuenta Oracle Cloud.
Como pre-requisitos, necesitamos tener una "Vault" (bóveda) donde guardar las conexiones y "Encryption Key" (clave de encriptado) para encriptar los datos de la misma. Son dos pasos sencillos que llevan un par de minutos, la documentación esta disponible aquí (en un futuro escribiré un articulo sobre esos pasos).
Teniendo creados tanto una Vault como una Encryption Key, el primer paso para crear una conexión es presionar el botón "Create Connection" y completar la siguiente pantalla:
Podemos seleccionar el tipo de base de datos para la cual creamos la conexión (Autónoma, DB System o Exadata) y luego elegir una de ellas según del compartimento deseado. Tenemos que completar el nombre de usuario con el que deseamos conectarnos, y luego elegir la contraseña, la cual se guarda en forma segura como "Password Secret". Para poder crear la contraseña (si es la primera vez que creamos la conexión) tenemos que usar el botón "Create Password Secret", el cual nos lleva a la siguiente página:
En esta pantalla debemos elegir un nombre para el Password Secret, elegir un Vault donde será guardado, y una Encryption Key para encriptarla (estos dos pasos son pre-requisitos) y a continuación ingresamos la contraseña que queremos guardar. Al volver a la pantalla de "Create Connection" presionamos "Next" lo cual nos lleva a la segunda parte de la creación:
Este segundo paso debemos definir un Wallet para la conexión, para ello tenemos que crear un "Wallet Content Secret" como se muestra a continuación (podemos usar el mismo Vault y Encryption Key que usamos para el "Password Secret":
Sólo debemos ingresar un nombre (y opcionalmente una descripción). Podemos dejar que OCI se encargue de obtener el auto login wallet de la base de datos autónoma. Una vez creado el Wallet Content Secret, podemos terminar de crear la conexión, la cual aparecerá en instantes en la pantalla de conexiones:
Usando las Conexiones
Al ingresar a la conexión, podemos ejecutar el forma rápida tanto SQL Worksheet como el cliente SQLcl conectado a la base de datos definida en la conexión.
A continuación podemos ver un ejemplo de SQLcl corriendo en la consola web de OCI conectado en forma directa a nuestra base de datos: