Monthly Archives: October 2012
Como crear usuarios y asignar permisos en PostgreSQL
En este tutorial veremos como crear un nuevo usuario y darle permisos sobre una base de datos usando postgreSQL, concretamente necesitaremos los siguientes comandos:
- adduser: comando utilizado agregar usuarios en un sistema UNIX/Linux
- psql: Llamada al interprete de comandos de postgreSQL (Si quieres ver una guia de la instalacion puedes revisar Instalar PostgreSQL 9.2 en Mac OSX).
- CREATE USER: Sirve para dar de alta un nuevo usuario en el gestor de base de datos.
- CREATE DATABASE: Crea una nueva base de datos.
- GRANT ALL PRIVILEGES: Define los privilegios que un usuario tendra sobre una base de datos.
Los siguientes pasos fueron probados utilizando debian squeeze 6, sin embargo el procedimiento no debería de variar mucho en otras distribuciones de Linux (tal vez y algunos comandos del sistema son diferentes pero no mas).
Desde la terminal
Lo primero que tenemos que hacer es crear un nuevo usuario en el sistema (necesitamos privilegios de root)
# adduser alevsk # passwd alevsk
Despues tenemos que acceder como el super usuario de postgresql (por lo general es postgres)
# su - postgres
Luego mandamos llamar el interprete del gestor indicando un usuario y una base de datos, por defecto también es postgres y postgres (usuario y base de datos).
# psql -h localhost -d postgres -U postgres
Si todo va bien la consola debería de mostrar algo como esto:
You are using psql, the command-line interface to PostgreSQL. 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=#
Una vez dentro simplemente indicamos que queremos agregamos un nuevo usuario.
postgres=# CREATE USER alevsk WITH PASSWORD 'elpassword';
Luego creamos la base de datos.
postgres=# CREATE DATABASE blog;
Y finalmente damos los privilegios al usuario sobre la base de datos que acabamos de crear.
postgres=# GRANT ALL PRIVILEGES ON DATABASE blog to alevsk; postgres=# \q
Y listo, ahora para corroborar que lo hicimos bien podemos intentar acceder al gestor con la cuenta que acabamos de crear.
$ su - alevsk $ psql –h localhost -d blog -U alevsk
Si todo salió bien la salida seria:
Welcome to psql 7.4.16, the PostgreSQL interactive terminal. Type: \\copyright for distribution terms \\h for help with SQL commands \\? for help on internal slash commands \\g or terminate with semicolon to execute query \\q blog=>
salu2
Instalar PostgreSQL 9.2 en Mac OSX
PostgreSQL es una de las tantas opciones que tenemos a la hora de trabajar con bases de datos, en lo personal lo he estado utilizando desde hace algunos meses ya y me encuentro muy cómodo con este gestor :), instalarlo es realmente sencillo, a continuación los pasos que yo realice para Instalar PostgreSQL 9.2 en Mac OSX (esta guia es para instalar la version 9.2.1 en Lion, pero seguramente funciona para cualquier otra versión).
Crear el usuario PostgreSQL
Lo primero que tenemos que hacer es crear un nuevo usuario, por convención lo llamamos postgres. (desde la terminal)
sudo dscl . -create /Users/postgres UserShell /usr/bin/false
Descargar postgreSQL 9.2.1 y comenzar la instalación
Despues descargamos el instalador DMG desde el sitio oficial.
Corremos el instalador, si nos da un error referente a memoria compartida simplemente seleccionamos Ok para que el instalador haga los cambios necesarios, reiniciamos nuestro equipo y lo intentamos de nuevo.
Al final el instalador me mostro los siguientes errores:
Problem running post-install step. Installation may not complete correctly The database cluster initialization failed.
Leyendo en algunos foros y blogs se supone que la razón es creación la del usuario postgres previa a la instalación, sin embargo no hay nada por que preocuparse, continuamos …
Probando PSQL en la terminal
Abrimos nuestra terminal y escribimos el comando psql, si nos da un error referente a que el comando no existe lo que tenemos que hacer es lo siguiente:
Escribimos:
which psql
Y probablemente la terminal nos mostrara algo como
/usr/bin/psql
Esta apuntando al path de instalación e por defecto del gestor y no ha donde acabamos de instalarlo. Para resolver ese problema tenemos que editar nuestro archivo bash_profile, que lo podemos encontrar en ~/.bash_profile, agregamos la siguiente linea:
export PATH=/Library/PostgreSQL/9.2/bin:$PATH
Si al abrir el archivo notas que ya tienes una entrada con export, no unico que tienes que hacer es agregar /Library/PostgreSQL/9.2/bin en alguna parte antes de $PATH, teniendo en cuidado de separar el path de otros usando :, al final debes de tener algo como:
export PATH=/opt/local/bin:/opt/local/sbin:/Library/PostgreSQL/9.2/bin:$PATH
Nota: 9.2 debe ser remplazado por la versión de postgreSQL que acabas de instalar.
Escribimos una vez mas en la consola
source ~/.bash_profile
despues
which psql
Y si todo esta bien debemos debemos de obtener algo como
/Library/PostgreSQL/9.2/bin/psql
Damos los permisos correspondientes a la carpeta de instalación (le asignamos la propiedad al usuario postgres)
sudo chown postgres /Library/PostgreSQL/9.2/data/
Y después lanzamos el servicio
sudo -u postgres initdb -D /Library/PostgreSQL/9.2/data
sudo -u postgres postgres -D /Library/PostgreSQL/9.2/data
Para comenzar a hacer uso de nuestro gestor podemos acceder desde la terminal
psql -h localhost -d basededatos -U usuario
que es una excelente GUI para hacer uso de postgreSQL.
O si lo prefieres puedes descargar pgAdmin III
salu2