Los roles de la base de datos están conceptualmente completamente separados de los usuarios del sistema operativo. En la práctica, puede ser conveniente mantener una correspondencia, pero esto no es obligatorio. Los roles de base de datos son globales en una instalación de clúster de base de datos (y no por base de datos individual). Para crear un rol, use el comando SQL CREATE ROLE:

CREATE ROLE name;

name sigue las reglas para los identificadores SQL: sin adornos ni caracteres especiales o entre comillas dobles. (En la práctica, por lo general querrá agregar opciones adicionales, como LOGIN, al mando. Más detalles aparecen a continuación.) Para eliminar un rol existente, use el comando DROP ROLE análogo:

DROP ROLE name;

Para mayor comodidad, los programas createuser y dropuser se proporcionan como contenedores de estos comandos SQL que se pueden llamar desde la línea de comandos del shell:

createuser name
dropuser name

Para determinar el conjunto de roles existentes, examine el pg_roles catálogo del sistema, por ejemplo

SELECT rolname FROM pg_roles;

El programa psql du El meta-comando también es útil para enumerar los roles existentes.

Para arrancar el sistema de la base de datos, un sistema recién inicializado siempre contiene un rol predefinido. Este papel es siempre un superusuarioy por defecto (a menos que se modifique al ejecutar initdb) tendrá el mismo nombre que el usuario del sistema operativo que inicializó el clúster de la base de datos. Habitualmente, este rol se denominará postgres. Para crear más roles, primero debe conectarse como este rol inicial.

Cada conexión con el servidor de la base de datos se realiza utilizando el nombre de algún rol en particular, y este rol determina los privilegios de acceso inicial para los comandos emitidos en esa conexión. El nombre del rol que se utilizará para una conexión de base de datos en particular lo indica el cliente que inicia la solicitud de conexión de una manera específica de la aplicación. por ejemplo, el psql programa utiliza el -U opción de línea de comando para indicar el rol como para conectarse. Muchas aplicaciones asumen el nombre del usuario actual del sistema operativo por defecto (incluyendo createuser y psql). Por lo tanto, a menudo es conveniente mantener una correspondencia de nombres entre los roles y los usuarios del sistema operativo.

El conjunto de roles de base de datos que una conexión de cliente determinada puede conectar según lo determine la configuración de autenticación del cliente, como se explica en capitulo 20. (Por lo tanto, un cliente no está limitado a conectarse como el rol que coincide con el usuario de su sistema operativo, al igual que el nombre de inicio de sesión de una persona no necesita coincidir con su nombre real). Dado que la identidad del rol determina el conjunto de privilegios disponibles para un cliente conectado, es importante configurar cuidadosamente los privilegios al configurar un entorno multiusuario.

Anterior Arriba Próximo
Capítulo 21. Funciones de la base de datos Casa 21.2. Atributos de rol