2013/3/19 Jorge Alberto Aquino Andrade <jorge.aquino.andr...@gmail.com>
> Estoy en un proyecto en el cual estaran conectadas aproximadamente 300 > dependencias o agencias en las cuales cada dependencia tendrá unos 10 > empleados por lo que existe la posibilidad que esten conectados 3000 > usuarios en algún momento del día a una base centralizada, la pregunta es > como puedo hacer para que los usuarios externos no puedan accesar la base > desde el pgadmin u otra herramienta administrativa de la base???? > La respuesta a esta pregunta depende un poco de la naturaleza de la aplicación: Si es una aplicación de n capas o web, entonces a la base sólo otorgarás acceso desde el servidor. Esto lo controlas desde el archivo de configuración pg_hba.conf. En cambio, si la aplicación es cliente servidor entonces si tendrás el escenario donde los usuarios necesitarán conectarse directamente a la base desde sus puestos, pero quiero pensar que ellos no tendrán usuarios propios en la base de datos sino de la aplicación. Por lo tanto, no tendrán como loguearse con pgAdmin. > La clave de adminsitrador de la base es suficiente con que solo una parte > del personal la sepa y con eso basta para que no ingresen otros o tengo que > hacer algo mas por la seguridad??? > La clave de administrador es una cosa, y que nadie más que el/los administradores deben conocer. Además tendrás que tener un usuario en la base para el sistema, y ese usuario tendrá visibilidad sobre todos los objetos de la aplicación. Adicionalmente, si necesitaras usuarios personales para correr reportes sql por ejemplo, allí deberás ser cuidadoso sobre qué permisos otorgas a esos usuarios. La idea es que sólo puedan ver las vistas o tablas que necesitan consultar. > Postgres soporta esa cantidad maxima de usuarios (3000 es el maximo > ahorita pero al implementar el proyecto puede ser que sea la minima) > Ojo, no confundir cantidad de usuarios con conexiones a la base. Tener 3000 conexiones simultáneas no es razonable con ninguna base de datos y tampoco con Postgres. Pero nuevamente tienes que tener clara la arquitectura de tu aplicación para entender cuál es la relación usuario-conexión. Por ejemplo, si usas un app server seguramente podrás implementar pool de conexiones a ese nivel, sino puedes hacerlo sobre el propio Postgres con un producto como pgbouncer. Dependiendo de la arquitectura de la aplicación podrías apuntar a tener decenas de miles de usuarios con no más de 50 conexiones simultáneas a la base. > Por favor hacer los comentarios sobre mis consultas. > Trabajo con Postgresql 9.2.1 y se piensa montar la base en Ubuntu (la > version mas estable) > Saludos, Fernando.