Seguridad Usuarios y Permisos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 36

Clase 9

Seguridad
Usuarios y
permisos
Problemas en entornos de producción
Si vamos a utilizar PostgreSQL en entorno de producción y es
imprescindible que configuremos el servidor de base de datos.

En ocasiones los usuarios están preocupados de lo mal y lo


lento que funciona su cluster de base de datos PostgreSQL en
un servidor último modelo con muchísima memoria.
Normalmente el problema es que PostgreSQL no ha sido
configurado para trabajar con el volumen de datos y usuarios
con el que lo estamos usando. No es una gran ayuda tener un
servidor con varios GBytes de memoria RAM si le hemos dicho
a PostgreSQL, por ejemplo, que no utilice más de 32MBytes.
Configuración de postgres

Ruta en Window_
D:\Program Files\PostgreSQL\12\data
Configuración de postgres

● postgresql.conf: En este fichero podemos


cambiar todos los parámetros de configuración
que afectan al funcionamiento y al
comportamiento de PostgreSQL en nuestra
máquina.

Herramienta: PGtune
Configuración de postgres

● postgresql.conf: Los cambios que realicemos en este fichero


afectaran a todas las bases de datos que tengamos definidas en nuestro cluster
PostgreSQL.
Variables a Cambiar

max_connections: Numero maximo de clientes conectados a la vez a nuestras


bases de datos. Deberiamos de incrementar este valor en proporcion al numero
de clientes concurrentes en nuestro cluster PostgreSQL. Un buen valor para
empezar es el 100:
2. Configuración uso recursos en Postgresql
1 #Conocer el servidor actual Modificar los valores
3
Memoria: free -h recomendados por pgtune en un
CPU: lscpu archivo postgresql.conf y habilitar
Disco: sudo fdisk -l listen_addresses = '*'
2 password_encryption = md5
Consultar valores
recomendados para
propiedades de uso de
4 Reiniciar el servidor
recursos de postgresql.conf
sudo systemctl restart postgresql
en
ejemplo de parametros en pgtune
Importancia de configurar:
Error en el sistema XXX

Fuente: sitema: Ignug asistencia


Fecha: 27/07/2020, 12:48:00 pm
Estimación de Usuarios de base de datos

Usuario de los aplicativos conectados simultaneamente

Nro de Usuarios
Nro de Usuarios
conectados pos
conectados pos
pc
Nombre Usuario Total Usuario Descripción Movil Total

ignug_matricula 1600 Estudiantes+Docentes 1000 1000 2000

Eva_cecy 500 estudiantes y docentes 400 300 700

Eva_Yavirac 1000 estudiantes y docentes 800 500 1300


ignug_control_asistencia 100 docente 90 55 145

Total de
coneciones
simultaneas 4145
No olvidad

Reiniciar el
Servicio
Configuración de postgres
pg_hba.conf: Este fichero se utiliza para definir los
diferentes tipos de accesos que un usuario tiene en
el cluster.

Este fichero se utiliza para definir cómo, dónde y


desde qué sitio un usuario puede utilizar nuestro
cluster PostgreSQL. Todas las lineas que empiezan
con el caracter # se interpretan como comentarios.
El resto debe de tener el siguiente formato:
Arquitectura
Configuración de postgres
casa directamente
Ip:186.47.182.26/32
o por vpn
Ip:172.10.0.20/32

Ip:172.10.0.X/24

Ip:172.10.0.10

Ip:172.10.0.11/32
Configuración de postgres

El tipo de conexion pede tener los El tipo de método puede tener los
siguientes valores, local, host, hostssl siguientes valores, trust, reject, md5,
y hostnossl. crypt, password, krb5, ident, pam o
ldap
Configuración de postgres

El tipo de conexion puede tener los El tipo de método puede tener los
siguientes valores, local, host, hostssl siguientes valores, trust, reject, md5,
y hostnossl. crypt, password, krb5, ident, pam o
ldap
Ejemplo
Ejemplo 1 .- Acceso por tcp/ip (red) a la base de datos test001, como usuario
test desde el ordenador con IP 10.0.0.100, y método de autentificación md5:

Esta misma entrada se podría escribir también con la mascara de red en notación
CIDR:
Ejemplo
Ejemplo 2 .- Acceso por tcp/ip (red) a la base de datos test001, como usuario test desde todos
los ordenadores de la red 10.0.0.0, con mascara de red 255.255.255.0 (254 ordenadores en total)
y metodo de autentificacion md5:

Esta misma entrada se podria escribir tambien con la mascara de red en notacion
CIDR:
Ejemplo
Ejemplo 2 .- Acceso por tcp/ip (red) a la base de datos test001, como usuario test desde todos
los ordenadores de la red 10.0.0.0, con mascara de red 255.255.255.0 (254 ordenadores en total)
y metodo de autentificacion md5:

Esta misma entrada se podria escribir tambien con la mascara de red en notacion
CIDR:
Como crear y eliminar un usuario Y roles con
contraseña
create user prueba password 'prueba'
drop role prueba
drop user prueba

create role prueba2 password 'prueba2'


drop user prueba2
drop role prueba2
Al tratar de crear una conexión No es igual

Los Usuarios si se puede conectar


Los roles no se Pueden Conectar
Como cambiar contraseña a un Rol y/o Usuario

Cambiar la contraseña a un Usuario

alter user prueba with password 'prueb'

alter role prueba with password 'prueba'

Cambiar contraseña a un Rol

alter user prueba2 with password 'prueba22'

alter role prueba2 with password 'prueba2'


Permisos al usuario con ALTER ROLE

ALTER ROLE, tiene varias opciones, entre ellas:

● SUPERUSER/NOSUPERUSER.
● CREATEDB/NOCREATEDB.
● CREATEROLE/NOCREATEROLE.
● CREATEUSER/NOCREATEUSER.
● LOGIN/NOLOGIN. Especificamos si será un rol o un usuario. El
usuario tiene permisos para acceder a la base de datos a través
de cualquier cliente, el rol no.
● PASSWORD.
● VALID UNTIL. Expiración de usuarios
Permisos al usuario con ALTER ROLE

create role vinculacion_ddl PASSWORD '123' NOSUPERUSER

create role vinculacion_dml PASSWORD '123' NOSUPERUSER

create role ignug PASSWORD '123' SUPERUSER


Otorgar privilegios sobre una base de datos

GRANT ALL PRIVILEGES ON DATABASE nombre_basedatos TO


prueba2;

https://www.postgresql.org/docs/12/sql-grant.html

Otorgar TODOS LOS privilegios sobre una


base de datos
GRANT ALL PRIVILEGES ON SCHEMA
vinculacion_sociedad to vinculacion_ddl;
REVOCAR privilegios sobre una base de datos

REVOKE CREATE ON SCHEMA public FROM PUBLIC;

revocar todos los privilegios

REVOKE ALL PRIVILEGES ON SCHEMA vinculacion_sociedad FROM


vinculacion_ddl;
Permisos al usuario con ALTER ROLE

create table ignug.estudiante(cedula character(20) primary key,nombre


character(20),usuario_id character(20));

insert into ignug.estudiante values('15729191','yogledis')

create table authentication.usuario(login character(20) primary key,clave


character(20));

insert into authentication.usuario values('yherrera','123')


Otorgar Permisos de super usuario

Otorgar Permisos a prueba de Superusuario(estos


permisos los otorga un super usuario postgressql)

alter user prueba with SUPERUSER

alter user prueba with NOSUPERUSER


Roles de la base de datos

- PostgreSQL gestiona los permisos de acceso a la base de datos utilizando


el concepto de roles . Un rol puede considerarse como un usuario de la
base de datos o un grupo de usuarios de la base de datos, dependiendo de
cómo esté configurado el rol. Los roles pueden poseer objetos de base de
datos (por ejemplo, tablas y funciones) y pueden asignar privilegios sobre
esos objetos a otros roles para controlar quién tiene acceso a qué objetos.
Además, es posible otorgar la membresía en un rol a otro rol, lo que
permite que el rol de miembro use los privilegios asignados a otro rol.

El concepto de roles subsume los conceptos de " usuarios " y " grupos " .
En las versiones de PostgreSQL anteriores a 8.1, los usuarios y grupos
eran distintos tipos de entidades, pero ahora solo hay roles. Cualquier rol
puede actuar como usuario, grupo o ambos.
Seguridad
Seguridad
Seguridad
Conclusión

-Para el Entorno de producción se debe configurar el motor


de base de datos.
- Antes de desarrollar un Sistema se debe tener definida y
probada la arquitectura de la base de datos, considerando
Integridad de datos, seguridad, rapidez en la generación de
resultados

También podría gustarte