Table of Contents
pg_hba.confCuando una aplicación cliente se conecta al servidor de la base de datos, especifica con qué nombre de usuario de la base de datos PostgreSQL quiere conectarse, de forma muy parecida a como se inicia sesión en un ordenador Unix como un usuario concreto. Dentro del entorno SQL, el nombre de usuario activo de la base de datos determina los privilegios de acceso a los objetos de la base de datos — consulta Chapter 21 para obtener más información. Por lo tanto, es esencial restringir qué usuarios de la base de datos pueden conectarse.
Como se explica en la sección Chapter 21,
PostgreSQL en realidad realiza la gestión de
privilegios en términos de “roles”. En este capítulo,
utilizamos sistemáticamente usuario de base de datos para referirnos a un “rol con el
privilegio LOGIN”.
La autenticación es el proceso mediante el cual el servidor de la base de datos establece la identidad del cliente y, por extensión, determina si la aplicación cliente (o el usuario que ejecuta la aplicación cliente) tiene permitido conectarse con el nombre de usuario de la base de datos que se solicitó.
PostgreSQL ofrece varios métodos de autenticación de clientes diferentes. El método utilizado para autenticar una conexión de cliente concreta puede seleccionarse en función de la dirección del host (cliente), la base de datos y el usuario.
Los nombres de usuario de la base de datos de PostgreSQL son lógicamente independientes de los nombres de usuario del sistema operativo en el que se ejecuta el servidor. Si todos los usuarios de un servidor concreto también tienen cuentas en la máquina del servidor, tiene sentido asignar nombres de usuario de base de datos que coincidan con sus nombres de usuario del sistema operativo. Sin embargo, un servidor que acepta conexiones remotas podría tener muchos usuarios de base de datos que no tengan cuenta en el sistema operativo local, y en tales casos no tiene por qué haber ninguna relación entre los nombres de usuario de la base de datos y los nombres de usuario del SO.