Recetas/postgresqlbasico
Contenido
Resumen de la receta
Requisitos
- Debian GNU/Linux Stretch 9.6
- postgresql-server 9.6
- Conocimiento básico de lenguaje SQL
- Tener configurado los repositorios, ver Recetas/repositorio
Instalación de programas
Vamos a instalar lso programas servidor y el cliente con el metapaquete postgresql. En caso de que solo quisieramos instalar el cliente solo instalamos el paquete postgresql-client.
apt-get install postgresql
Configuración
Configuración de seguridad
Las configuraciones de seguridad de postgresql se encuentran en el archivo /etc/postgresql/9.6/main/pg_hba.conf , para mejorar la seguridad de nuestra instalación, cambiaremos la configuración para que solo el usuario postgres del sistema operativo sea permitido sin clave en la consola de postgres. Para ello cambiaremos la linea:
local all all peer
La dejaremos como:
local all all md5
Y reiniciamos el postgres
service postgresql restart
Creación de usuario
Accedemos como usuario root.
su
Cambiamos al usuario postgresql
su postgres
Ingresamos al CLI de postgres
psql
Verificamos los usuarios que estan registrados en postgres
postgres=# select * from pg_user;
Creamos el usuario
postgres# create user prueba with encrypted password 'uls';
Creación de la base de datos
Listamos las bases de datos que existen actualmente
postgres=# \l
En el CLI de postgres creamos la base de datos y le asignamos el dueño al usuario.
postgres=# create database ulsdb with owner prueba;
Verificamos que la base de datos se haya creado correctamente
postgres=# \l
Probando usuario
Luego de haber creado la base, nos salimos del CLI de postgresql a la terminal de linux y ejecutamos la siguiente sentencia
psql -U prueba ulsdb
Donde la opción -U le indica el usuario que usaremos y el último argumento (ulsdb) la base de datos a la que nos conectaremos. A continuación nos pedirá la clave de acceso y si fué exitoso, nos mostrará el CLI de postgresql de la siguiente forma:
ulsdb=>
Que indica que estamos conectado a la base de datos ulsdb como un usuario normal (carácter >).
Creando las tablas
Creamos dos tablas simples de pruebas llamadas aula y curso relacionada con la llave ID de que cada curso tiene un aula asignada
ulsdb=> CREATE TABLE aula(id INT NOT NULL, nombre VARCHAR(20), PRIMARY KEY ( id ) ); ulsdb=> CREATE TABLE curso(id INT NOT NULL, nombre VARCHAR(20),id_aula INT, PRIMARY KEY ( id ),FOREIGN KEY (id_aula) REFERENCES aula(id) );
Verificamos que la tabla haya sido creada
ulsdb=> \d
Mostramos los campos de la tabla creada
ulsdb=> \d aula
Insertando datos a las tablas
Insertamos datos en la tabla
ulsdb=> insert into aula values(1,'Computo B1'); ulsdb=> insert into aula values(2,'Computo C1'); ulsdb=> insert into curso values(1,'redes I',1); ulsdb=> insert into curso values(2,'Sistemas',2);
Verificamos los datos insertados
ulsdb=> select * from aula; ulsdb=> select * from curso;
Nos salimos del CLI de postgresql
ulsdb=> \q
Instalación de phppgadmin
apt-get install phppgadmin
Por defecto phppgadmin solo permite que se conecten desde la misma computadora donde esta instalado, pero si se quiere acceder desde otra computadora en la red, se debe configurar el servidor web, para nuestro caso apache2. El archivo a modificar es /etc/apache2/conf-enabled/phppgadmin.conf.
Comentaremos las línea que contiene
#Require local
Y reiniciaremos el servidor web apache
service apache2 restart
Y luego solo abriremos el navegador y escribiremos http://<IP DE LA COMPUTADORA>/phppgadmin
Nota: Es de tener en cuenta que phppgadmin no tiene en cuentra el cifrado HTTPS por lo que en sí es inseguro.