createuser

createuser — define una nueva cuenta de usuario de PostgreSQL

Synopsis

createuser [opción-de-conexión...] [opción...] [nombre_usuario]

Descripción

createuser crea un nuevo usuario de PostgreSQL (o más precisamente, un rol). Solo los superusuarios y los usuarios con el privilegio CREATEROLE pueden crear nuevos usuarios, por lo que createuser debe ser invocado por alguien que pueda conectarse como superusuario o como un usuario con el privilegio CREATEROLE.

Si deseas crear un rol con los privilegios SUPERUSER, REPLICATION o BYPASSRLS, debes conectarte como superusuario, no simplemente con el privilegio CREATEROLE. Ser superusuario implica la capacidad de eludir todas las comprobaciones de permisos de acceso dentro de la base de datos, por lo que el acceso de superusuario no debe concederse a la ligera. CREATEROLE también otorga privilegios muy amplios.

createuser es un envoltorio del comando SQL CREATE ROLE. No hay ninguna diferencia real entre crear usuarios mediante esta utilidad y mediante otros métodos para acceder al servidor.

Opciones

createuser acepta los siguientes argumentos de línea de comandos:

nombre_usuario

Especifica el nombre del usuario de PostgreSQL que se va a crear. Este nombre debe ser diferente de todos los roles existentes en esta instalación de PostgreSQL.

-a rol
--with-admin=rol

Especifica un rol existente que se añadirá automáticamente como miembro del nuevo rol con la opción admin, otorgándole el derecho de conceder la pertenencia en el nuevo rol a otros. Se pueden especificar múltiples roles existentes escribiendo múltiples opciones -a.

-c número
--connection-limit=número

Establece un número máximo de conexiones para el nuevo usuario. El valor predeterminado es no establecer ningún límite.

-d
--createdb

Se le permitirá al nuevo usuario crear bases de datos.

-D
--no-createdb

No se le permitirá al nuevo usuario crear bases de datos. Este es el comportamiento predeterminado.

-e
--echo

Muestra los comandos que createuser genera y envía al servidor.

-E
--encrypted

Esta opción está obsoleta pero todavía se acepta para compatibilidad con versiones anteriores.

-g rol
--member-of=rol
--role=rol (obsoleto)

Especifica que el nuevo rol debe añadirse automáticamente como miembro del rol existente especificado. Se pueden especificar múltiples roles existentes escribiendo múltiples opciones -g.

-i
--inherit

El nuevo rol heredará automáticamente los privilegios de los roles de los que es miembro. Este es el comportamiento predeterminado.

-I
--no-inherit

El nuevo rol no heredará automáticamente los privilegios de los roles de los que es miembro.

--interactive

Solicita el nombre de usuario si no se especifica ninguno en la línea de comandos, y también solicita confirmación para cualquiera de las opciones -d/-D, -r/-R, -s/-S que no se haya especificado en la línea de comandos. (Este era el comportamiento predeterminado hasta PostgreSQL 9.1).

-l
--login

Se le permitirá al nuevo usuario iniciar sesión (es decir, el nombre de usuario se puede utilizar como el identificador de usuario de la sesión inicial). Este es el comportamiento predeterminado.

-L
--no-login

No se le permitirá al nuevo usuario iniciar sesión. (Un rol sin el privilegio login sigue siendo útil como medio para gestionar los permisos de la base de datos).

-m rol
--with-member=rol

Especifica un rol existente que se añadirá automáticamente como miembro del nuevo rol. Se pueden especificar múltiples roles existentes escribiendo múltiples opciones -m.

-P
--pwprompt

Si se especifica, createuser solicitará la contraseña del nuevo usuario. Esto no es necesario si no tienes previsto utilizar la autenticación por contraseña.

-r
--createrole

Se le permitirá al nuevo usuario crear, alterar, eliminar, comentar sobre, o cambiar la etiqueta de seguridad para otros roles; es decir, este usuario tendrá el privilegio CREATEROLE. Consulta la creación de roles para obtener más detalles sobre qué capacidades otorga este privilegio.

-R
--no-createrole

No se le permitirá al nuevo usuario crear nuevos roles. Este es el comportamiento predeterminado.

-s
--superuser

El nuevo usuario será un superusuario.

-S
--no-superuser

El nuevo usuario no será un superusuario. Este es el comportamiento predeterminado.

-v marca_temporal
--valid-until=marca_temporal

Establece una fecha y hora después de la cual la contraseña del rol dejará de ser válida. El valor predeterminado es no establecer ninguna fecha de vencimiento de la contraseña.

-V
--version

Muestra la versión de createuser y finaliza.

--bypassrls

El nuevo usuario omitirá todas las políticas de seguridad a nivel de fila (RLS).

--no-bypassrls

El nuevo usuario no omitirá las políticas de seguridad a nivel de fila (RLS). Este es el comportamiento predeterminado.

--replication

El nuevo usuario tendrá el privilegio REPLICATION, el cual se describe con más detalle en la documentación de CREATE ROLE.

--no-replication

El nuevo usuario no tendrá el privilegio REPLICATION, el cual se describe con más detalle en la documentación de CREATE ROLE. Este es el comportamiento predeterminado.

-?
--help

Muestra la ayuda sobre los argumentos de línea de comandos de createuser y finaliza.

createuser también acepta los siguientes argumentos de línea de comandos para los parámetros de conexión:

-h host
--host=host

Especifica el nombre de host de la máquina en la que se está ejecutando el servidor. Si el valor comienza con una barra diagonal, se utiliza como el directorio para el socket de dominio Unix.

-p puerto
--port=puerto

Especifica el puerto TCP o la extensión del archivo de socket de dominio Unix local en el que el servidor está escuchando conexiones.

-U usuario
--username=usuario

Nombre de usuario con el que conectarse (no el nombre de usuario a crear).

-w
--no-password

Nunca solicita una contraseña. Si el servidor requiere autenticación por contraseña y no hay una contraseña disponible por otros medios, como un archivo .pgpass, el intento de conexión fallará. Esta opción puede ser útil en trabajos por lotes y scripts donde no hay ningún usuario presente para introducir una contraseña.

-W
--password

Fuerza a createuser a solicitar una contraseña (para conectarse al servidor, no para la contraseña del nuevo usuario).

Esta opción nunca es indispensable, ya que createuser solicitará automáticamente una contraseña si el servidor exige autenticación por contraseña. Sin embargo, createuser desperdiciará un intento de conexión para descubrir que el servidor requiere una contraseña. En algunos casos, vale la pena escribir -W para evitar el intento de conexión adicional.

Entorno

PGHOST
PGPORT
PGUSER

Parámetros de conexión predeterminados.

PG_COLOR

Especifica si se debe usar color en los mensajes de diagnóstico. Los valores posibles son always, auto y never.

Esta utilidad, al igual que la mayoría de las demás utilidades de PostgreSQL, también utiliza las variables de entorno soportadas por libpq (consulta la Section 32.15).

Diagnósticos

En caso de dificultad, consulta la CREATE ROLE y la psql para obtener información sobre posibles problemas y mensajes de error. El servidor de la base de datos debe estar ejecutándose en el host de destino. Además, se aplicará cualquier configuración de conexión predeterminada y variable de entorno utilizada por la biblioteca frontend libpq.

Ejemplos

Para crear un usuario joe en el servidor de base de datos predeterminado:

$ createuser joe

Para crear un usuario joe en el servidor de base de datos predeterminado solicitando algunos atributos adicionales:

$ createuser --interactive joe
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

Para crear el mismo usuario joe usando el servidor en el host eden, puerto 5000, con atributos especificados explícitamente, echando un vistazo al comando subyacente:

$ createuser -h eden -p 5000 -S -D -R -e joe
CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;

Para crear el usuario joe como superusuario, y asignarle una contraseña inmediatamente:

$ createuser -P -s -e joe
Enter password for new role: xyzzy
Enter it again: xyzzy
CREATE ROLE joe PASSWORD 'SCRAM-SHA-256$4096:44560wPMLfjqiAzyPDZ/eQ==$4CA054rZlSFEq8Z3FEhToBTa2X6KnWFxFkPwIbKoDe0=:L/nbSZRCjp6RhOhKK56GoR1zibCCSePKshCJ9lnl3yw=' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS;

En el ejemplo anterior, la nueva contraseña no se muestra realmente en la pantalla al escribirla, pero mostramos lo que se escribió para mayor claridad. Como se puede ver, la contraseña se encripta antes de ser enviada al cliente.

Véase también

dropuser, CREATE ROLE, createrole_self_grant