Manual PostgreSQL: Crear Usuario, Base de Datos y Asignar Permisos
Ingresá a PostgreSQL como superusuario:
psql -U postgres
Ejecutá el siguiente comando para crear el usuario:
CREATE USER usuario_nuevo WITH PASSWORD 'clave_segura';
Podés otorgarle privilegios globales o sobre una base específica:
ALTER USER usuario_nuevo WITH SUPERUSER;
O si preferís limitarlo a una base:
GRANT ALL PRIVILEGES ON DATABASE nombre_base TO usuario_nuevo;
Desde la terminal:
psql -U usuario_nuevo
Si la base de datos no existe, se intentará conectar a una con el mismo nombre que el usuario.
Desde la sesión de PostgreSQL:
CREATE DATABASE nombre_base OWNER usuario_nuevo;
Esto crea la base y la asigna al usuario.
Conectate a la base:
\c nombre_base
Ejecutá los siguientes comandos:
GRANT CONNECT ON DATABASE nombre_base TO PUBLIC;
GRANT USAGE ON SCHEMA public TO PUBLIC;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO PUBLIC;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO PUBLIC;
Esto garantiza acceso total para todos los usuarios actuales y futuros.
Desde otro usuario, podés probar:
psql -U otro_usuario -d nombre_base
Y luego:
SELECT current_user;