Archivo por meses: Octubre 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