Estudio e implementación de un lenguaje de autorización para bases de datos relacionales
Tesis
Access note
Acceso abierto
Publication date
2023Metadata
Show full item record
Cómo citar
Olmedo Berón, Federico
Cómo citar
Estudio e implementación de un lenguaje de autorización para bases de datos relacionales
Author
Professor Advisor
Abstract
La popularidad de nuevas arquitecturas de software, y la disponibilidad de novedosas formas de controlar la seguridad de datos en una aplicación, motivan a estudiar el problema de la autorización: Qué usuarios pueden hacer qué acciones con qué datos de una aplicación. En este trabajo, se analizan opciones disponibles, se identifica un hueco para el que las soluciones disponibles son insuficientes, y se propone una nueva.
La solución consiste en un lenguaje de dominio específico para definir reglas de autorización. El lenguaje, llamado Pilpilang, permite asociar permisos con usuarios y recursos de la aplicación. Está diseñado para transformarse en código SQL, que se pueda usar para configurar una base de datos PostgreSQL, de modo que el motor de base de datos sea el encargado de aplicar las reglas cuando y donde corresponda.
El lenguaje también se implementa en un compilador que da ciertas garantías de correctitud, como el tipado estático.
Para evaluar la eficacia del trabajo realizado, se traducen tres conjuntos de ejemplos de autorización establecidos a Pilpilang, y se discuten las diferencias entre las versiones traducidas y las originales. Los resultados de estas comparaciones son positivos sobre la aplicabilidad del nuevo lenguaje, aunque son mixtos sobre su valor agregado sobre la creación de SQL directamente. Sin embargo, se identifican funcionalidades extra que pueden dar este valor agregado, las cuales quedan como trabajo futuro.
xmlui.dri2xhtml.METS-1.0.item-notadetesis.item
Memoria para optar al título de Ingeniero Civil en Computación
Identifier
URI: https://repositorio.uchile.cl/handle/2250/193173
Collections
The following license files are associated with this item: