¿Usuario público invitado para PostgreSQL?

1

Administro un proyecto de software de código abierto que se basa en datos que me complace compartir con el público. El software está alojado en github.com, pero el conjunto de datos es demasiado grande para alojar allí. Es más fácil mantener el conjunto de datos en forma de una base de datos relacional, actualmente almacenada en un servidor PostgreSQL en el laboratorio de mi universidad. Supongo que se consideraría una mala práctica crear una cuenta de usuario "invitado" de solo lectura en mi servidor PostgreSQL y publicar las credenciales junto con el software. ¿Es eso cierto? Si es así, ¿por qué? ¿Y puede sugerir una forma segura de compartir una base de datos relacional con el público?

Probablemente, mi alternativa sea configurar un servidor HTTP que ofrezca resultados estandarizados desde puntos finales RESTful particulares o acepte consultas ad hoc para la base de datos (supongo que este último también es una mala idea). Pero me gustaría tener una buena idea de por qué debo hacer eso antes de seguir ese camino.

    
pregunta Matthias Fripp 29.10.2017 - 00:59
fuente

1 respuesta

4

Ya mencionaste algunos de los problemas:

  • la mala configuración es fácil,
  • los errores de escalamiento de privilegios podrían ponerlo en riesgo,
  • ofrecer acceso directo, más o menos incontrolado a los datos puede llevar a situaciones de DOS.

Pero hay algunos problemas adicionales con tu idea:

Esto significa que su universidad estará obligada a ofrecer el servicio mientras el producto esté en uso por cualquier persona. La continuidad es un problema; Si uno de sus usuarios decide clonar toda la base de datos a través de esa conexión, es posible que no responda a otros. Además, puede haber personas que quieran que el software se ejecute sin una conexión a Internet.

Si bien una http-API es el camino a seguir para que las personas utilicen su base de datos de forma relativamente segura en general, en este caso particular, la mejor manera, desde mi punto de vista, sería utilizar una buena compresión en un volcado de base de datos y aloje ese archivo para descargarlo en el servidor de su universidad si es demasiado grande para github.

De esta manera, no introduce innecesariamente un punto único de falla para que la aplicación funcione y se arriesgue menos, y mucho menos se ahorre un trabajo tedioso, posiblemente de introducción de vulnerabilidad.

    
respondido por el Tobi Nary 29.10.2017 - 08:56
fuente

Lea otras preguntas en las etiquetas