· Tutoriales · 5 min read
Gestionar BDs y Usuarios en Postgres

¡Bienvenido a nuestro tutorial sobre la gestión de bases de datos y usuarios en PostgreSQL! Esta publicación te guiará a través del proceso de creación de bases de datos y usuarios, así como de concesión de permisos para que los usuarios accedan a las bases de datos. Proporcionaremos ejemplos usando tanto comandos psql como SQL simple, y ofreceremos algunas recomendaciones para privilegios en entornos de producción y desarrollo.
Antes de comenzar, es importante señalar que PostgreSQL es un sistema de base de datos objeto-relacional de código abierto y potente que se usa ampliamente para gestionar grandes conjuntos de datos. Si eres nuevo en PostgreSQL, es posible que desees familiarizarte con algunos conceptos básicos antes de continuar con este tutorial.
Ahora, ¡comencemos!
👨👧👦 Crear Usuarios en PostgreSQL
Para crear un usuario en PostgreSQL, puedes usar el comando CREATE USER. Por ejemplo:
CREATE USER miusuario WITH ENCRYPTED PASSWORD 'micontraseña';Esto creará un usuario con el nombre de usuario miusuario y la contraseña micontraseña.
También puedes usar psql para crear un usuario. Así es cómo:
createuser miusuario -P💾 Crear una Base de Datos en PostgreSQL
Para crear una base de datos en PostgreSQL, puedes usar el comando CREATE DATABASE. Por ejemplo:
CREATE DATABASE mibasededatos;Esto creará una base de datos con el nombre mibasededatos.
También puedes usar psql para crear una base de datos. Así es cómo:
psql> createdb mibasededatosPara crear una base de datos con un propietario predefinido, puedes usar la opción —owner:
psql> createdb mibasededatos --owner=miusuarioEsto creará una base de datos con el nombre mibasededatos y establecerá el propietario como el usuario miusuario.
⚙️ Agregar Permisos para un Usuario en PostgreSQL
Para agregar permisos para un usuario en PostgreSQL, puedes usar el comando GRANT. Por ejemplo:
GRANT ALL PRIVILEGES ON DATABASE mibasededatos TO miusuario;Esto otorgará todos los privilegios en la base de datos mibasededatos al usuario miusuario.
Si deseas otorgar a un usuario solo privilegios específicos en una tabla, puedes usar el comando GRANT con los privilegios apropiados. Por ejemplo, si deseas otorgar a un usuario los privilegios SELECT, INSERT y UPDATE en una tabla, puedes usar el siguiente comando:
GRANT SELECT, INSERT, UPDATE ON TABLE mitabla TO miusuario;Para otorgar a un usuario la capacidad de crear tablas en una base de datos, puedes usar el privilegio CREATE:
GRANT CREATE ON DATABASE mibasededatos TO miusuario;También puedes otorgar a un usuario la capacidad de conectarse a una base de datos usando el privilegio CONNECT:
GRANT CONNECT ON DATABASE mibasededatos TO miusuario;Hay muchos otros privilegios que puedes otorgar a un usuario, como la capacidad de eliminar datos, crear índices y ejecutar funciones. Puedes encontrar una lista completa de privilegios en la documentación de PostgreSQL.
Aquí hay algunos ejemplos de otorgamiento de privilegios adicionales:
GRANT DELETE, TRUNCATE ON TABLE mitabla TO miusuario;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO miusuario;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO miusuario;🏭 Privilegios Recomendados para Bases de Datos de Producción
En un entorno de producción, es importante gestionar cuidadosamente los permisos para garantizar la seguridad y estabilidad de la base de datos. Aquí hay algunos privilegios recomendados para usuarios en una base de datos de producción:
- CONNECT: Permite al usuario conectarse a la base de datos.
- CREATE: Permite al usuario crear objetos en la base de datos, como tablas y funciones.
- USAGE: Permite al usuario usar objetos en la base de datos, como secuencias.
- SELECT, INSERT, UPDATE, DELETE: Permite al usuario leer y escribir en tablas de la base de datos.
Aquí hay un ejemplo de otorgamiento de estos privilegios a un usuario en una base de datos de producción:
GRANT CONNECT, CREATE, USAGE, SELECT, INSERT, UPDATE, DELETE ON DATABASE mibasededatos TO miusuario;🛠 Privilegios Recomendados para Bases de Datos de Desarrollo
En un entorno de desarrollo, puede ser útil otorgar más privilegios a los usuarios para permitir más flexibilidad y experimentación. Aquí hay algunos privilegios recomendados para usuarios en una base de datos de desarrollo:
- EXECUTE: Permite al usuario ejecutar funciones en la base de datos.
Aquí hay un ejemplo de otorgamiento de estos privilegios a un usuario en una base de datos de desarrollo:
GRANT CONNECT, CREATE, DROP, TRUNCATE, USAGE, SELECT, INSERT, UPDATE, DELETE, EXECUTE ON DATABASE mibasededatos TO miusuario;o simplemente:
GRANT ALL PRIVILEGES ON DATABASE mibasededatos TO miusuario;✨ PGTune
PGTune es una utilidad que te ayuda a optimizar la configuración de un servidor PostgreSQL basándose en el hardware y la carga de trabajo del servidor. Esto puede ser especialmente útil si estás ejecutando una carga de trabajo de alta concurrencia y deseas asegurarte de que tu servidor esté configurado óptimamente para el máximo rendimiento.
Pgtune es fácil de usar y puede ahorrarte tiempo y esfuerzo en la configuración de tu servidor PostgreSQL. Simplemente proporciona a pgtune información básica sobre tu hardware y carga de trabajo, y generará un archivo de configuración optimizado para tus necesidades. Pgtune es una herramienta valiosa para cualquiera que busque sacar el máximo provecho de su servidor PostgreSQL.
🙋 Ponte en contacto
Si tienes alguna pregunta o sugerencia estaré feliz de leerlas, puedes enviarme un correo a [email protected]


