Saltar al contenido principal

Bases de datos en BYOS

Cada despliegue en tu servidor funciona sobre su propia base de datos PostgreSQL. Esta página cubre las dos decisiones de base de datos propias de ejecutar en tu propio hardware: dónde se ejecuta PostgreSQL, y cómo abrir acceso directo de solo lectura a la base de datos de un despliegue para herramientas BI y scripts.


Dónde se ejecuta PostgreSQL

Al registrar un servidor, el panel pregunta "¿Dónde deben vivir las bases de datos de Odoo?" Hay dos opciones, y la elección determina el comando de instalación que ejecutas en el servidor.

En tu servidor (por defecto)

El instalador configura una instancia PostgreSQL dedicada en el propio servidor, junto a Docker y el agente. Cada despliegue recibe allí su propia base de datos, y las copias de seguridad, restauraciones y copias de staging funcionan sin configuración adicional. Es la opción correcta para la mayoría de los servidores: sin infraestructura extra y sin salto de red entre Odoo y su base de datos.

PostgreSQL externo o gestionado

Si prefieres un servicio de base de datos gestionado (Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL) o un clúster PostgreSQL propio ya existente, selecciona PostgreSQL externo / gestionado al registrar el servidor. El comando de instalación incluye entonces SKYSIZE_PG_MODE=external, y el instalador pide los datos de conexión (host, puerto, usuario, contraseña, configuración SSL) directamente en tu servidor.

nota

Las credenciales de la base de datos se introducen en tu servidor y se quedan allí. Nunca se envían a Skysize; el panel solo muestra qué modo usa el servidor y el host de la base de datos.

En modo externo:

  • No se instala ningún PostgreSQL local. Todas las bases de datos de los despliegues se crean en el servidor externo.
  • La conexión puede usar TLS. Si tu proveedor exige u ofrece TLS (la mayoría de los servicios gestionados lo hacen), la configuración SSL que introduces se transmite a cada despliegue, incluido el certificado CA cuando proporcionas uno.
  • El usuario de la base de datos debe poder crear roles y bases de datos. El instalador verifica durante la configuración que el usuario proporcionado tiene los privilegios CREATEROLE y CREATEDB; cada despliegue sigue recibiendo su propia base de datos y su propio rol.
  • Las extensiones deben estar disponibles en el servidor. Las extensiones de las que dependen tus módulos (por ejemplo vector) se habilitan por base de datos cuando el servidor las ofrece. En servicios gestionados, consulta la lista de extensiones soportadas del proveedor.

El servidor PostgreSQL debe ser accesible desde tu servidor Skysize (emparejamiento de VPC, red privada, o un punto de acceso público con lista de permitidos, según tu proveedor), y su versión debe estar soportada por tu versión de Odoo.

atención

Elige la ubicación de la base de datos al configurar el servidor por primera vez. Cambiar un servidor existente entre PostgreSQL local y externo es posible, pero las bases de datos de los despliegues deben migrarse manualmente; contacta con soporte antes de intentarlo.


Acceso directo a la base de datos (solo lectura)

Puedes abrir acceso PostgreSQL directo y de solo lectura a la base de datos de un despliegue, para herramientas BI (Metabase, Power BI, Grafana), scripts de informes o SQL puntual. El acceso es por rama, está protegido con TLS y permanece bloqueado hasta que autorizas explícitamente las direcciones IP que pueden conectarse.

Esta funcionalidad está disponible solo en tus propios servidores, y solo para administradores del proyecto. Se aplica a servidores que usan el PostgreSQL local por defecto; si el servidor usa una base de datos externa o gestionada, gestiona el acceso a través de tu proveedor de base de datos.

Habilitar el acceso

  1. Abre la rama en el panel y localiza la tarjeta Acceso a la base de datos.
  2. Haz clic en Crear acceso de solo lectura. Esto crea un rol dedicado de solo lectura en tu servidor y muestra su contraseña una sola vez; cópiala antes de cerrar el aviso.
  3. Descarga el certificado CA desde la misma tarjeta. Las conexiones requieren TLS, y el CA permite a tu cliente verificar que habla con tu servidor.
  4. Añade las direcciones IP que pueden conectarse (ver más abajo). Hasta que la lista de permitidos tenga al menos una entrada, todas las conexiones externas están bloqueadas.

La tarjeta muestra los datos de conexión completos: host, puerto (5432 por defecto), nombre de la base de datos y rol. Una cadena de conexión típica se ve así:

postgresql://[email protected]:5432/mibase?sslmode=verify-full&sslrootcert=skysize-db-ca.crt

Usa sslmode=verify-full con el certificado CA descargado para que la conexión esté cifrada y autenticada a la vez.

nota

Si el panel indica que el puerto de la base de datos aún no está publicado en tu servidor (servidores instalados antes de esta funcionalidad), muestra un comando de una línea para ejecutar en el servidor y publicarlo. El puerto 5432 también debe estar abierto en el firewall de tu proveedor cloud (security group de AWS, regla de firewall de GCP, etc.). Un firewall bloqueado hace que las conexiones se queden colgadas sin error; una IP que falta en la lista de permitidos se rechaza al instante.

La lista de direcciones IP permitidas

Cada cambio en la lista se aplica primero en tu servidor y solo entonces se guarda, así que lo que muestra el panel es siempre lo que el servidor aplica realmente. Si el servidor está desconectado, el cambio se rechaza.

  • Añade una dirección individual (203.0.113.5) o un rango de red (203.0.113.0/24), con una etiqueta opcional como "VPN de la oficina" o "Metabase Cloud".
  • Eliminar una entrada bloquea esa red inmediatamente.
  • Los rangos muy amplios se marcan con una insignia de advertencia, y 0.0.0.0/0 (todo Internet) con una más fuerte. Prefiere el rango más estrecho que cubra tus herramientas; los proveedores BI SaaS publican las direcciones de salida desde las que se conectan.

Qué puede hacer el rol de solo lectura

  • Leer todo, no cambiar nada. El rol puede hacer SELECT sobre todas las tablas de la base de datos de esa rama, incluidas las tablas creadas por futuras instalaciones de módulos. No puede escribir, crear objetos ni alcanzar otras bases de datos del servidor.
  • Uso de recursos acotado. El rol está limitado a 10 conexiones simultáneas, y las consultas demasiado largas o las transacciones dejadas abiertas se interrumpen automáticamente.
atención

Las consultas de solo lectura se ejecutan en el mismo servidor que tu instancia de Odoo. Las consultas pesadas o constantes pueden ralentizarla; para informes intensivos, ejecuta las consultas fuera de horas punta o replica los datos a tu propio sistema.

Rotación y eliminación

  • Rotar contraseña invalida inmediatamente la contraseña actual y muestra una nueva, una sola vez. Cada herramienta conectada necesita la nueva contraseña.
  • Eliminar acceso elimina el rol de solo lectura y vuelve a bloquear todas las conexiones externas a la base de datos de la rama.

Las contraseñas las genera la plataforma (aleatorias de 128 bits) y se almacenan cifradas; no se pueden elegir manualmente.

Modelo de seguridad

  • Solo se expone la base de datos de la propia rama, solo a las redes de la lista de permitidos, solo mediante TLS, y solo al rol dedicado de solo lectura. Todo lo demás, incluidos los intentos de conexión desde direcciones no autorizadas, se rechaza antes de que empiece la autenticación por contraseña.
  • Lo que autorizas depende de ti: los rangos que añades, y el firewall de la máquina y de la cuenta cloud donde corre el servidor, siguen siendo tu responsabilidad, como el resto del modelo de seguridad BYOS.