attakatara

El sitio del código de todos python, sql, xml …

¿Usuario O role?

Basta leer un tutorial de instalación y configuración de PostgreSQL y tal cual como recetas nos indican paso a paso un sencillo procedimiento para tener todo a tono en nuestros sistemas basados en UNIX, uno de mis favoritos y el cual recomiendo es el de Caballero [1].

Una de las confusiones que siempre me han embargado es que al instalar el sistema automáticamente se crea un usuario de entorno Unix llamado postgres el cual por cuestiones de seguridad se nos pide que se le cambie su password de forma inmediata. Y luego se nos pide que logueados como este entremos a la cli de psql para crear un role postgres con la orden sql ALTER ROLE. Si lo tomo como receta o píldora puede ser que no tenga problemas de funcionamiento alguno, ahora bien si no lo entiendo como creo que a la mayoría nos pasa (por novatada o newbie), puede ser que crea luego necesitar crear un role para otro usuario y que por simetría crea necesario también crear su respectivo usuario de entorno UNIX, esto ultimo puede traer consecuencias considerables de seguridad al sistema entre otras cosas y de eso quiero que vaya este post.

Empecemos por definir cada uno de ellos y luego vemos si podemos relacionarles. Según [2]:

El sistema Unix es un sistema operativo multiusuario. Linux está basado en el sistema Unix. Para que múltiples usuarios puedan hacer uso del sistema de una forma segura y ordenada, es necesario que el sistema disponga de mecanismos de administración y seguridad para proteger los datos de cada usuario, así como para proteger y asegurar el correcto funcionamiento del sistema.

Siendo así podemos dilucidar que postgres necesita un usuario Unix ya que ejecutara una serie de funciones sobre el entorno para crear y mantener la disponibilidad de los clusters de datos (almacenes de datos, colección de bases de datos), esto es sencillo verlo si ejecutamos comandos desde psql y en una consola aparte con top podemos ver en la imagen que se ejecutan procesos con PID especifico en este caso el 13774 y que a su vez se relacionan con el usuario postgres. Hasta este punto todo bien sin ir a las entrañas técnicas del funcionamiento ya develamos el uso del usuario cada vez que accedemos al cluster de datos sea bien a través de sql directamente o de forma indirecta con alguna aplicación que realice un socket (conexión entre uns app y la bd), a este.

uOr1

Esta bien, ¿Y el role?, este último puede ser pensado como un usuario o un grupo de estos, no están relacionados directamente a una base de datos sino a todo el cluster (puedes imaginar el cluster como un apilamiento de base de datos), los roles son guardados en una tabla de catálogo denominada pg_roles, haciendo una consulta sobre ella con SELECT podemos ver los roles existentes en el cluster especifico o con los comandos: \dg o \du, en la imagen podemos constatar que la salida de ambos nos suministra la información sobre los roles en el sistema.

uOr2

Para finalizar podemos concluir que el usuario tiene una pertinencia operativa sobre el sistema Unix mientras que dicha capacidad para el role se reduce al cluster de datos, podemos tomar en cuenta otras consideraciones respecto a la seguridad o a que debe hacer un role especifico o que no debe hacer, lo cual es un criterio nada subjetivo y que dependerá del uso de cada sistema en particular, pueden existir ciertos consejos pero exceden el alcance de este post, los mismos espero tratarlos en próximas publicaciones.

Agradecido con la conversa constructiva con el amigo Javier León @jelitox.

[1] https://lcaballero.wordpress.com/2013/03/01/instalacion-de-postgresql-en-debian-gnulinux-wheezy/

[2] http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m1/usuarios_y_grupos_de_usuarios_en_linux.html

Anuncios

Navegación en la entrada única

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: