GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo crear un usuario de Postgres

Introducción

La administración de privilegios de usuario y acceso a privilegios es un concepto de seguridad crucial para cualquier tipo de base de datos. PostgreSQL maneja el control de acceso a través de roles y privilegios. Por ejemplo, agregar el permiso LOGIN a un rol produce un usuario. Postgres ofrece varias formas de crear y administrar cuentas de usuario.

Este tutorial muestra cómo crear y configurar diferentes tipos de usuarios para una base de datos de PostgreSQL.

Requisitos previos

  • Postgres instalado (siga nuestra guía para Ubuntu o Windows).
  • Acceso a la terminal con privilegios sudo.
  • Acceso al usuario de postgres.

Crear un nuevo usuario en PostgreSQL

Hay dos formas de crear un nuevo usuario en PostgreSQL, y ambos casos requieren acceso a postgres usuario.

Método 1:uso de la utilidad de cliente createuser

La primera forma de crear un nuevo usuario es con createuser utilidad del cliente. Este método evita conectarse a la interfaz de línea de comandos de PSQL.

Para crear el usuario, ejecute el siguiente comando en la terminal:

sudo -u postgres createuser <name>

El terminal no emite ningún mensaje. Para hacer eco del mensaje del servidor, agregue -e etiqueta:

sudo -u postgres createuser -e <name>

Por ejemplo:

sudo -u postgres createuser -e john

Alternativamente, divida el comando en dos partes:

1. Cambia a postgres usuario:

sudo su - postgres

2. Ejecute createuser comando:

createuser <name>

Postgres crea automáticamente el usuario (rol con permisos de inicio de sesión) en ambos casos.

Método 2:Usar PSQL

La segunda forma de crear un nuevo usuario en PostgreSQL es a través del shell interactivo de PSQL.

1. Cambia a postgres usuario e inicie la terminal interactiva con:

sudo -u postgres psql

La sesión de terminal cambia a postgres=# , lo que indica una conexión exitosa al shell de Postgres.

2. Use la siguiente instrucción para crear un usuario:

CREATE USER <name>;

Por ejemplo:

CREATE USER mary;

Ejecutar el comando imprime CREATE ROLE a la consola La razón es que el CREATE USER query es un alias para el siguiente comando:

CREATE ROLE <name> WITH LOGIN;

Ambas consultas arrojan el mismo resultado.

Crear un superusuario en PostgreSQL

Para crear un superusuario en PostgreSQL, debe tener el rol de superusuario.

Advertencia: Un superusuario de la base de datos pasa por alto todas las comprobaciones, lo que es peligroso desde el punto de vista de la seguridad. Use esta acción con cuidado y evite trabajar con una cuenta de superusuario a menos que sea absolutamente necesario.

Hay dos formas de crear un superusuario en PostgreSQL:

1. Cree un rol de superusuario a través de la utilidad de cliente agregando --superuser etiqueta:

sudo -u postgres createuser --superuser <name>

O use la etiqueta abreviada -s en lugar de --superuser :

sudo -u postgres createuser -s <name>

El terminal emite un mensaje en caso de error o si el usuario ya existe. Si tiene éxito, no aparece ningún mensaje.

2. Alternativamente, use el CREATE USER Declaración PSQL:

CREATE USER <name> SUPERUSER;

El CREATE USER declaración es un alias para la siguiente declaración:

CREATE ROLE <name> LOGIN SUPERUSER;

El CREATE ROLE declaración requiere agregar el LOGIN permiso para emular un usuario.

Cree una contraseña para el usuario

Cada usuario de la base de datos debe tener una contraseña segura para evitar ataques de fuerza bruta. PostgreSQL ofrece dos métodos para crear un usuario con una contraseña.

Advertencia: De los dos métodos, el primero es el preferido y más seguro.

1. Usa el createuser utilidad de cliente y agregue el --pwprompt opción para invocar una solicitud de creación de contraseña automáticamente:

sudo -u postgres createuser <name> --pwprompt

La versión abreviada es -P etiqueta:

sudo -u postgres createuser <name> -P

El terminal le pide que ingrese la contraseña dos veces. La contraseña en sí o la longitud se cifra y oculta cuando se comunica con el servidor.

2. Use PSQL para crear un usuario con una contraseña:

CREATE USER <name> WITH PASSWORD '<password>';

Si el usuario ya existe, agregue la contraseña usando ALTER USER :

ALTER USER <name> WITH PASSWORD '<password>';

La administración de contraseñas a través de PSQL viene con tres vulnerabilidades de seguridad:

  • La contraseña es visible en la pantalla.
  • Ver el historial de comandos expone la contraseña.
  • La información se transmite como texto claro sin ningún tipo de cifrado.

Utilice este método con precaución.

Otorgar Privilegios al Usuario

De forma predeterminada, los nuevos usuarios no tienen ningún privilegio excepto el de inicio de sesión. Para agregar privilegios al crear un usuario, ejecute createuser utilidad de cliente en el siguiente formato:

createuser <option> <name>

Para hacer lo mismo en PSQL, ejecute:

CREATE USER <name> WITH <option>;

A continuación se muestra una tabla con opciones comúnmente utilizadas para ambos métodos.

Por ejemplo, cree un usuario con privilegios de creación de funciones y bases de datos y agregue el -e etiqueta para hacer eco de los resultados:

sudo -u postgres createuser -d -r -e <name>

O use el equivalente de PSQL:

CREATE USER <name> WITH CREATEROLE CREATEDB;

En ambos casos, los privilegios indicados se otorgan automáticamente al nuevo usuario.

Crear un usuario de PostgreSQL de forma interactiva

La creación de usuarios interactivos es una opción práctica disponible solo para la utilidad del cliente. Para crear un usuario de forma interactiva, ejecute el siguiente comando:

sudo -u postgres createuser --interactive

El comando genera automáticamente una serie de preguntas con lo siguiente:

  • Nombre del rol.
  • Si el rol es un superusuario.
  • Si el usuario tiene permiso para crear bases de datos.
  • Si el usuario puede crear otros roles.

Responda sí (y ) a la pregunta de superusuario automáticamente para agregar los privilegios de "crear base de datos" y "crear rol" y finalizar el aviso.

Lista de todos los usuarios en PostgreSQL

Una herramienta esencial para la gestión de usuarios en las bases de datos es enumerar todos los usuarios con sus respectivos roles y privilegios.

Para enumerar todos los usuarios en PostgreSQL, haga lo siguiente:

1. Conéctese al indicador de PSQL como usuario de postgres:

sudo -u postgres psql

2. Enumere todos los usuarios con el siguiente comando:

\du

El resultado muestra una tabla con los nombres de los roles, los atributos (privilegios) y los grupos de usuarios. Para mostrar la descripción de cada función, agregue el signo más (+ ) firmar:

\du+

El resultado muestra una columna adicional con la descripción del rol cuando corresponde.


Ubuntu
  1. Cómo crear un usuario Sudo en Debian

  2. Cómo crear un usuario en Linux[Gestión de usuarios]

  3. Centos:¿cómo crear un usuario Sftp en Centos?

  4. ¿Cómo creo un crontab a través de un script?

  5. ¿Cómo puedo crear un usuario que no inicie sesión?

Cómo crear un usuario Sudo en Debian

Cómo crear un usuario de base de datos MySQL en cPanel

Cómo crear un usuario Sudo en Ubuntu Linux

Cómo crear un usuario Sudo en CentOS

Cómo crear un administrador de correo en Plesk

Cómo crear un usuario o contacto

    Sintaxis de opciones PSQL Explicación
    -s
    --superuser
    SUPERUSER Agregue el privilegio de superusuario.
    -S
    --no-superuser
    NOSUPERUSER Sin privilegios de superusuario (predeterminado).
    -d
    --createdb
    CREATEDB Permite al usuario crear bases de datos.
    -D
    --no-createdb
    NOCREATEDB No se permite crear bases de datos (predeterminado).
    -r
    --createrole
    CREATEROLE Permite al usuario crear nuevos roles.
    -R
    --no-createrole
    NOCREATEROLE No se permite crear roles (predeterminado).
    -i
    --inherit
    INHERIT Heredar automáticamente los privilegios de los roles (predeterminado).
    -I
    --no-inherit
    NOINHERIT No heredar privilegios de roles.
    -l
    --login
    LOGIN Permite al usuario iniciar sesión en una sesión con el nombre del rol (predeterminado).
    -L
    --no-login
    NOLOGIN No se permite iniciar sesión en una sesión con el nombre del rol.
    --replication REPLICATION Permite iniciar la replicación de transmisión y activar/desactivar el modo de copia de seguridad.
    --no-replication NOREPLICATION No se permite iniciar la replicación de transmisión o el modo de copia de seguridad (predeterminado).
    -P
    --pwprompt
    PASSWORD '<password>' Inicia la solicitud de creación de contraseña o agrega la contraseña proporcionada al usuario. Evite usar esta opción para crear un usuario sin contraseña.
    / PASSWORD NULL Establece específicamente la contraseña en nulo. Cada autenticación de contraseña falla para este usuario.
    -c <number>
    --connection-limit=<number>
    CONNECTION LIMIT <number> Establece el número máximo de conexiones por usuario. El valor predeterminado es ilimitado.