Sei sulla pagina 1di 32

UNIVERSIDAD NACIONAL DE CONCEPCIÓN

FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS


Carrera “INGENIERÍA EN INFORMÁTICA EMPRESARIAL”

Administración de PostgreSQL

Lic. José Javier Garcete Cardús


Servidor y Objetos del PostgreSQL

Una vez instalado PostgreSQL y abierto


pgAdmin uno se encuentra con lo siguiente:

2 Lic. José Javier Garcete Cardús


Servidor y Objetos del PostgreSQL

En Ingles:

3 Lic. José Javier Garcete Cardús


Servidor y Objetos del PostgreSQL

Hay una gran variedad de objetos del PostgreSQL.


Hablaremos de los objetos más utilizados:
Servidor (Server): Es el
servidor de PostgreSQL o
demonio. Usted puede tener
más de un servidor físico,
siempre y cuando la conexión
se realice en diferentes
puertos o direcciones IP.

4 Lic. José Javier Garcete Cardús


Servidor y Objetos del PostgreSQL

Base de datos (Database):


Cada servidor PostgreSQL
puede almacenar muchas
bases de datos.

5 Lic. José Javier Garcete Cardús


Servidor y Objetos del PostgreSQL

Tabla (table): Las tablas son los caballos de


batalla de cualquier base de datos. Lo que es
único acerca de las tablas de PostgreSQL es el
soporte de herencia.

Esquema (schema): Los esquemas son los


contenedores lógicos de tablas y otros objetos.
Cada base de datos puede tener varios
esquemas. Los esquemas son parte de las normas
ANSI-SQL, por lo que se verán en otras bases de
datos.
6 Lic. José Javier Garcete Cardús
Servidor y Objetos del PostgreSQL
Tablespace: es el lugar físico donde se
almacenan los datos. PostgreSQL permite
tablespaces que se gestionan de forma
independiente, lo que significa que se puede
mover fácilmente las bases de datos a las
diferentes unidades de almacenamiento

Vista (view): La mayoría de las bases de datos


relacionales tienen vistas para abstraer
consultas. En PostgreSQL las vistas se pueden
actualizar.
7 Lic. José Javier Garcete Cardús
Servidor y Objetos del PostgreSQL

Función (function): Las funciones en


PostgreSQL pueden devolver un valor o
un conjuntos de registros. Los
agregados son funciones que se utilizan
con las construcciones SQL como
GROUP BY.

8 Lic. José Javier Garcete Cardús


Servidor y Objetos del PostgreSQL

Secuencia (sequence): La secuencia es lo que


controla el auto-incremento en las definiciones de
tabla. Por lo general, se crean automáticamente
cuando se define una columna de tipo serial.

Disparadores (trigger): Se encuentra en muchas


bases de datos, los disparadores detectan los
eventos de cambio en los datos y puede
reaccionar antes o después de cambiar los datos
actuales (registros).

9 Lic. José Javier Garcete Cardús


Administración de PostgreSQL

Tres son los archivos de configuración principales que


controlan las operaciones básicas de una instancia del
servidor PostgreSQL.

Estos archivos están ubicados en la carpeta de datos


PostgreSQL por defecto.

Puede editarlos utilizando el editor de texto de su


elección, o utilice el paquete de administración que viene
con pgAdmin.
10 Lic. José Javier Garcete Cardús
Administración de PostgreSQL

Si alguna vez no está seguro en dónde se encuentran estos


archivos, ejecute la siguiente consulta SQL como superusuario
(postgres).

SELECT name, setting

FROM pg_settings

WHERE category = 'File Locations';

11 Lic. José Javier Garcete Cardús


Archivo postgresql.conf
Controla los ajustes principales de la instancia del servidor
PostgreSQL, así como ajustes por defecto para nuevas bases de
datos.

Muchos ajustes, "como la ordenación de la memoria", pueden ser


sobrescritos en la base de datos, el usuario, la sesión, etc.

12 Lic. José Javier Garcete Cardús


Archivo postgresql.conf
 max_connections: Número máximo de clientes conectados a la vez a nuestras

bases de datos. Deberíamos de incrementar este valor en proporción al

numero de clientes concurrentes en nuestra instancia de PostgreSQL. Un

buen valor para empezar es el 100

 shared_buffers: Este parámetro es importantísimo y define el tamaño del

buffer de memoria utilizado por PostgreSQL. No por aumentar mucho este

valor tendremos mejor respuesta. En un servidor dedicado podemos

empezar con un 25% del total de nuestra memoria. Nunca mas de 1/3 (33%)

del total. Por ejemplo, en un servidor con 4Gbytes de memoria, podemos

usar 1024MB como valor inicial.

13 Lic. José Javier Garcete Cardús


Archivo postgresql.conf

 work_mem: Usada en operaciones que contengan ORDER BY, DISTINCT,


joins, .... En un servidor dedicado podemos usar un 2-4% del total de
nuestra memoria si tenemos solamente unas pocas sesiones (clientes)
grandes. Nunca más de RAM/num.conexiones. Como valor inicial
podemos usar 8 Mbytes, para aplicaciones web, y hasta 128MB para una
aplicación de datawarehouse.

 maintenance_work_mem: Usada en operaciones del tipo VACUUM,


ANALYZE, CREATE INDEX, ALTER TABLE, ADD FOREIGN KEY. Su valor
dependerá mucho del tamaño de nuestras bases de datos. Por ejemplo,
en un servidor con 4Gbytes de memoria, podemos usar 256MB como
valor inicial. La fórmula es 1/16 de nuestra memoria RAM.
14 Lic. José Javier Garcete Cardús
Archivo postgresql.conf
 effective_cache_size: Parámetro usado por el 'query planner' de nuestro
motor de bases de datos para optimizar la lectura de datos. En un
servidor dedicado podemos empezar con un 50% del total de nuestra
memoria. Como máximo unos 2/3 (66%) del total. Por ejemplo, en un
servidor con 4Gbytes de memoria, podemos usar 2048MB como valor
inicial.

 checkpoint_segments: Este parámetro es muy importante en bases de


datos con numerosas operaciones de escritura (insert,update,delete).
Para empezar podemos empezar con un valor de 64. En grandes bases de
datos con muchos Gbytes de datos escritos podemos aumentar este
valor hasta 128-256.

15 Lic. José Javier Garcete Cardús


Archivo pg_hba.conf

El archivo pg_hba.conf
controla que y cómo los
usuarios pueden conectarse a
bases de datos PostgreSQL.
Los cambios en el pg_hba.conf
requieren una recarga o
reiniciar el servidor para tener
efecto.

16 Lic. José Javier Garcete Cardús


Archivo pg_hba.conf
Es importante poder definir desde qué equipos se
pueden conectar a nuestra base de datos, así como
poder definir qué usuarios y a qué bases de datos se
pueden conectar.

Se trata de editar una serie de reglas que se irán


procesando de arriba abajo, cuando se encuentre una
regla que cumpla la conexión, se ejecutará lo que ponga
en el método.

17 Lic. José Javier Garcete Cardús


Archivo pg_hba.conf
Hay cuatro formas generales de definir
un acceso autorizado:

TIPO BASE DATOS USUARIOS DIRECCIÓN MÉTODO


LOCAL base_datos usuario método-autenticación
HOST base_datos usuario direcciónCIDR método-autenticación

HOSTSSL base_datos usuario direcciónCIDR método-autenticación

HOSTNOSSL base_datos usuario direcciónCIDR método-autenticación

18 Lic. José Javier Garcete Cardús


pg_hba.conf, Columna Base de Datos

TIPO BASE DATOS USUARIOS DIRECCIÓN MÉTODO


HOST base_datos usuario direcciónCIDR método-autenticación

 ALL: se permite la conexión a cualquier base de datos

 SAMEUSER: solo a bases de datos que su nombre sea el mismo


que el usuario que se conecta

 SAMEROLE: solo a bases de datos que su nombre sea el mismo


que el role que se conecta

 nombd1, nombd2,…: se permite la conexión a cualquiera de las


bases de datos de la lista. @fichero: se permite la conexión a las
bases de datos incluidas en el fichero, que debe estar en el mismo
directorio que pg_hba.conf

19 Lic. José Javier Garcete Cardús


pg_hba.conf, Columna Usuario

TIPO BASE DATOS USUARIOS DIRECCIÓN MÉTODO


HOST base_datos usuario direcciónCIDR método-autenticación

 ALL: se permite la conexión de cualquier role

 role1, [+]role2,…: se permite la conexión de los roles de la lista


y además se permite la conexión de cualquier role que sea
miembro de role2

 @fichero: se permite la conexión de los roles incluidos en el


fichero, que debe estar en el mismo directorio que pg_hba.conf

20 Lic. José Javier Garcete Cardús


pg_hba.conf, Columna Dirección

TIPO BASE DATOS USUARIOS DIRECCIÓN MÉTODO


HOST base_datos usuario direcciónCIDR método-autenticación

 192.168.200.0/24 ó 192.168.200.0 255.255.255.0: se

pueden conectar todas las IPs de la red 192.168.200

 192.168.0.0/16 ó 192.168.0.0 255.255.0.0: todos las

IPs de la red 192.168

 192.168.200.85/32: solo esa IP

 0.0.0.0/0 ó 0.0.0.0 0.0.0.0.: cualquier IP

21 Lic. José Javier Garcete Cardús


pg_hba.conf, Columna Método
TIPO BASE DATOS USUARIOS DIRECCIÓN MÉTODO
HOST base_datos usuario direcciónCIDR método-autenticación

 TRUST: conexión aceptada sin condiciones

 REJECT: conexión rechazada sin condiciones

 PASSWORD: se solicita palabra de paso sin encriptar, las palabras de paso


se almacenan en la tabla pg_authid y pueden estar cifradas o no según
como se creara el role.

 CRYPT: palabra de paso encriptada (versiones previas a la 7.2)

 MD5: palabra de paso con el método de encriptación md5, y se almacena


también con este método. Es el método recomendado por PostgreSQL.

 KRB5: se usa Kerberos v5 para autenticar el cliente, se ha de habilitar en la


instalación del servidor.

22 Lic. José Javier Garcete Cardús


pg_hba.conf, Ejemplo

23 Lic. José Javier Garcete Cardús


Archivo pg_ident.conf

Archivo accesorio al pg_hba.conf, determina como se


realiza la autenticación ident que contiene la
correspondencia entre usuarios del Sistema Operativo y de
PostgreSQL.

A partir del usuario de la conexión cliente (se fía de la


autenticación del cliente) y de la correspondencia indicada
en la opción. Las correspondencias se obtienen del fichero
pg_ident.conf.

24 Lic. José Javier Garcete Cardús


Configuración de Grupos y Usuarios

Los roles engloba el concepto de usuarios (roles de login) y


grupos de permisos (roles de grupo), estos últimos son lo
mismo que los roles de Oracle. Hasta la versión 8 de
Postgres no se podían anidar roles, ahora si. Por defecto, si
al crear una instancia de servidor no se ha indicado otro
usuario, se crea el usuario postgres como superusuario.

En PostgreSQL los usuarios son tipos de roles, el role es el


concepto general.

25 Lic. José Javier Garcete Cardús


Configuración de Grupos y Usuarios

Desde el
sistema
operativo:

26 Lic. José Javier Garcete Cardús


Configuración de Grupos y Usuarios

Acceder desde el Símbolo del Sistema (cmd) a la ruta


donde se encuentran los utilitarios de postgreSQL:
C:\Program Files\PostgreSQL\9.3\bin>

createuser -h localhost -p 5432 -U postgres -d -r -l -P


nombrealumno1;

createuser -h localhost -p 5432 -U postgres -l -P


nombrealumno2;

27 Lic. José Javier Garcete Cardús


Configuración de Grupos y Usuarios

Desde
un
cliente
SQL:

28 Lic. José Javier Garcete Cardús


Configuración de Grupos y Usuarios

Desde pgAdmin III:

CREATE ROLE nombrealumno3 WITH LOGIN

CREATEDB CREATEROLE PASSWORD '12345';

CREATE ROLE nombrealumno4 WITH LOGIN


UNENCRYPTED PASSWORD '12345';
29 Lic. José Javier Garcete Cardús
Configuración de Grupos y Usuarios

Los roles de grupo son generalmente roles que no tienen


derecho sesión (LOGIN), pero tienen otras funciones como
miembros. Ejemplo:

CREATE ROLE "carlos1" NOSUPERUSER NOCREATEDB


NOCREATEROLE NOREPLICATION;

CREATE ROLE jgarcete1 LOGIN

PASSWORD '12345' SUPERUSER NOCREATEDB NOCREATEROLE


NOREPLICATION;

GRANT "carlos1" TO jgarcete1;

30 Lic. José Javier Garcete Cardús


Configuración de Grupos y Usuarios

Para borrar usuarios desde el cmd:

dropuser -h localhost -p 5432 -U postgres


jgarcete

Para borrar usuarios desde SQL:

DROP ROLE carlos01;

31 Lic. José Javier Garcete Cardús


josegarcete2010@gmail.com
josegarcete.jimdo.com

32 Lic. José Javier Garcete Cardús