Para probar un servidor de base de datos de producción, debe crear roles adicionales porque trabajar regularmente en sus bases de datos como el rol de superusuario predeterminado es riesgoso.
Este artículo le muestra cómo crear funciones adicionales con PostgreSQL® mediante el uso de psql
comandos de cliente o comandos de shell. Debe usar el usuario de Linux®, postgres ®, con ambos métodos.
Inicie sesión en su instancia con sus credenciales de Linux y ejecute el siguiente comando para cambiar a los usuarios a postgres usuario:
# sudo su - postgres
Usar comandos psql
Use los siguientes pasos para crear o eliminar usuarios usando el psql
cliente.
Conectar con psql
Conéctese al servidor de la base de datos utilizando el cliente psql con postgres
rol:
postgres@demo:~$ psql -U postgres
...
Welcome to psql 8.3.6, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=#
Crear un rol
Después de conectarse con el psql
cliente, ejecute el siguiente comando para crear un rol que tenga el LOGIN
atributo y una contraseña encriptada MD5 no vacía:
postgres=#CREATE ROLE demorole1 WITH LOGIN ENCRYPTED PASSWORD 'password1';
Nota :Se requiere el punto y coma final (; ) al final de la instrucción SQL. Las comillas simples ( ' ' ) no forman parte de la contraseña, pero deben encerrarla.
Valide que creó el rol con éxito usando el siguiente comando:
postgres=# \du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
demorole1 | no | no | no | no limit | {}
postgres | yes | yes | yes | no limit | {}
(2 rows)
Eliminar un rol
Cuando ya no necesite una función, puede descartar (eliminar o eliminar) una función mediante el siguiente comando:
postgres=# DROP ROLE demorole1;
Si luego verifica con el \du
comando, puedes ver que demorole1
ya no está en la lista.
Crear un superusuario
Ocasionalmente, es posible que deba crear roles de superusuario adicionales, como cuando tiene un programador de base de datos en quien confía para administrar el servidor postgres.
Para crear un superusuario, ejecute el siguiente comando:
postgres=#CREATE ROLE mysuperuser2 WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'mysuperpass2';
El comando establece el LOGIN
y especifica una contraseña que no esté vacía. Estos factores son importantes si pretende este rol de superusuario para conexiones locales y remotas a la base de datos.
Salir de psql
Para salir de psql
, ejecute el siguiente comando:
postgres=# \q
...
postgres@demo:~$
Usar comandos de shell
Puede crear y descartar roles de base de datos mediante los comandos de shell createuser y dropuser, que son contenedores para las sentencias CREATE y DROPSQL. Una instalación estándar de postgres incluye estos comandos.
crear usuario
Ejecute el siguiente comando para crear un rol que no sea de superusuario que tenga el LOGIN
atributo:
postgres@demo:~$ createuser -PE demorole2
Enter password for new role:
Enter it again:
...
postgres@demo:~$
El -P
le pide que establezca una contraseña para el nuevo rol y -E
bandera indica almacenar la contraseña como una cadena cifrada MD5.
Para verificar la creación del rol, conéctese a psql
y ejecuta el siguiente comando:
postgres=# \du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
demorole2 | no | no | no | no limit | {}
postgres | yes | yes | yes | no limit | {}
(2 rows)
usuario
Ejecute el siguiente comando para descartar un rol:
postgres@demo:~$ dropuser -i demorole2
...
Role "demorole2" will be permanently removed.
Are you sure? (y/n) y
...
postgres@demo:~$
El -i
flag proporciona un mensaje de confirmación, que es una buena medida de seguridad cuando ejecuta un comando potencialmente destructivo.
Crear un superusuario
Ocasionalmente, es posible que deba crear roles de superusuario adicionales, como cuando tiene un programador de base de datos en quien confía para administrar el servidor postgres.
Para crear un superusuario, ejecute el siguiente comando:
postgres@demo:~$ createuser -sPE mysuperuser