Instalar PostgreSQL en Debian 7.0 (Wheezy)
Instalar PostgreSQL
Instalar usando el comando apt-get:
apt-get install postgresql postgresql-client postgresql-contrib
Accesar PostgreSQL
El proceso de instalación creó una base de datos y un usuario, ambos denominados postgres. Para accesar al manjeador de base de datos la primera vez se usa el usuario postgres:
su - postgres
$ psql
psql (9.1.9)
Type "help" for help.
postgres=#
Para salir de la sesión se escribe el comando de psql Configurar opciones de seguridad básicas
Cambiar la clave del usuario postgres
El usuario postgres tiene el rol de administrador dentro del manejador de base de datos, y en la instalación se le colocó una clave de forma predeterminada. Esta clave se puede cambiar de la siguiente forma:
su - postgres
$ psql
psql (9.1.9)
Type "help" for help.
postgres=#
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q
Nota: Preferiblemente realizar este paso antes de cambiar el tipo de autenticación.
Autenticación con MD5
En el punto anterior se puede observar que el manejador de base de datos no solicitó una clave del usuario postgres, el cual es el administrador de la base de datos. Este comportamiento se debe a que PostgreSQL esta configurado para usar autenticación de tipo ident, la cual se basa en el acceso mediante el uso de un usuario local en el sistema operativo. Para cambiar este comportamiento predeterminado y colocar la autenticación por el método MD5, que le solicita al usuario una clave, ejecutamos lo siguiente:
- Editar el archivo /etc/postgresql/9.1/main/pg_hba.conf
vi /etc/postgresql/9.1/main/pg_hba.conf
- Ubicar la siguiente línea:
local all all ident
- Cambiar ident por md5 para que quede como sigue:
local all all md5
- Reiniciar Postgres para aplicar los cambios:
/etc/init.d/postgresql restart
Ahora cada vez que desee conectarse a la base de datos le será solicitado una clave de acceso.
Configurar TCP/IP
De forma predeterminada las conexiones por TCP/IP estan deshablitadas, por lo tanto los usuarios no pueden accesar a la base de datos desde otros computadores. Para permitir la conexión desde otros sistemas o computadores ejecutamos lo siguiente:
- Editar el archivo /etc/postgresql/9.1/main/postgresql.conf
vi /etc/postgresql/9.1/main/postgresql.conf
- Ubicar la siguiente línea:
#listen_addresses = 'localhost'
- Descomentar esa línea y cambiar la palabra localhost por la dirección ip del sistema o computador a cual se desea permitir el acceso. Si se desea permitir a todos los computadores colocar un asterisco (*):
listen_addresses = '*'
- Luego ubicar la siguiente línea:
#password_encryption = on
- Descomentar la línea anterior:
password_encryption = on
- Reiniciar el manejador para activar los cambios:
/etc/init.d/postgresql restart
Instalar PostgreSQL Adminpack
Para instalar el PostgreSQL Adminpack, se ejecuta el siguiente comado dentro de psql:
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
Crear un usuario
Para crear un usuario en el manejor de base de datos, se ejecuta lo siguiente:
- Cambiarse al usuario postgres:
su - postgres
- Ejecutar el comando creauteuser para crear el usuario:
$ createuser
Enter name of role to add: pedro
Shall the new role be a superuser? (y/n) y
- Ejecutar lo siguiente dentro de psql:
psql
postgres=# \password pedro
Enter new password:
Enter it again:
Crear una Base de Datos
Para crear un base de datos se procede de la siguiente forma:
- Ejecutar el comando para crear una base de datos cuyo propietario sea el usuario pedro:
su - postgres
$ createdb -O pedro mi_base_de_datos
- Conectarse a la base de datos creada:
psql mi_base_de_datos
psql (9.1.9)
Type "help" for help.
mi_base_de_datos=#
Borra una Base de Datos
- Ejecutar el comando createuser con el usuario postgres :
su - postgres
$ dropdb <nombre-de-la-base-de-datos>
Borrar un Usuario
- Ejecutar el comando dropuser con el usuario postgres :
su - postgres
$ dropuser <nombre-usuario>