Abrir un cliente de PostgreSQL
Para poder desarrollar este nanotutorial necesitamos tener disponible una sesión cliente en un servidor PostgreSQL. Para esto debemos iniciar el cliente con el siguiente comando:psql -U postgres -h localhost -W
Crear usuario
Para crear un usuario lo haremos con el siguiente comando:CREATE USER usuario PASSWORD 'password';
Eliminar usuario
Si deseamos eliminar un usuario debemos ejecutar el siguiente comando:DROP USER usuario;
ALTER ROLE
El manejo de roles en PostgreSQL permite diferentes configuraciones, entre ellas estan:- SUPERUSER/NOSUPERUSER. Super usuario, privilegios para crear bases de datos y usuarios.
- CREATEDB/NOCREATEDB. Permite crear bases de datos.
- CREATEROLE/NOCREATEROLE. Permite crear roles.
- CREATEUSER/NOCREATEUSER. Permite crear usuarios.
- LOGIN/NOLOGIN. Este atributo hace la diferencia entre un rol y usuario. Ya que el usuario tiene permisos para acceder a la base de datos a traves de un cliente.
- PASSWORD. Permite alterar la contraseña.
- VALID UNTIL. Expiración de usuarios.
ALTE ROLE <nombre del rol> WITH <opciones>
Asignar permisos de super usuario a un usuario
El permiso de super usuario es el mas alto. Con este usuario se podrán administrar todos los objetos del motor de base de datos.Para asignar este privilegio a un rol lo hacemos con el siguiente comando:
ALTER ROLE usuario WITH SUPERUSER;
Cambiar la contraseña de un usuario
Para cambiar la contraseña de un usuario es necesario ejecutar el siguiente comando:ALTER ROLE usuario WITH PASSWORD 'nuevopassword';
Crear una base de datos con un usuario específico como propietario
Todas las bases de datos que creamos con un usuario que tenga los privilegiosCREATEDB automáticamente asignan como propietario al usuario mismo. Si lo que queremos crear es un usuario limitado, la forma de crearlo con una base de datos específica será:
CREATE DATABASE baseDatos_website WITH OWNER usuario;
Asignar todos los permisos a un usuario a una base de datos existente
Cuando recien hemos creado un usuario y queremos darle permisos a una base de datos existente, podemos utilizar el siguiente comando:GRANT ALL PRIVILEGES ON DATABASE usuario_website TO basedatos;
#su -
#su postgres
#createuser -d -a -P usuario