De que se trata o artigo

Este artigo trata do uso do mecanismo de roles, oferecido pelo PostgreSQL, na construção de políticas de controle de acesso aos dados e metadados de um banco a fim de garantir a segurança das informações armazenadas.


Em que situação o tema é útil

Praticamente todo projeto de banco de dados usa algum aspecto de segurança de informação. Desta forma, os conceitos apresentados neste artigo acerca de roles e privilégios podem ser utilizados de maneira ampla, não se limitando a projetos que utilizam PostgreSQL como SGBD.

Resumo DevMan

Tão importante quanto armazenar informações é protegê-las. Todo sistema de informação deve, essencialmente, preocupar-se em manter seus dados a salvo de pessoas ou softwares mal intencionados. É importante que a política de segurança vá além da camada de aplicação e alcance também a camada de dados.

Desta forma, a concepção de uma base de dados deve levar em conta também a política de segurança a ser utilizada na manipulação dos dados e objetos (metadados) da base.

Os SGBDs atuais oferecem inúmeros recursos que podem ser aplicados à segurança de informação. Dentre eles está o mecanismo de roles e privilégios, uma forma simples e muito eficiente de se limitar direitos de acesso e manipulação de objetos e dados de um banco de dados.

Neste contexto, este artigo trata especificamente do uso de roles e manipulação de privilégios de acesso no PostgreSQL, versão 9.1. O objetivo é oferecer um aprofundado embasamento teórico e prático que permita ao leitor adquirir um bom domínio sobre o uso destes recursos.

A ascensão tecnológica movida pelos avanços, tanto em termos de hardware quanto de software nas últimas décadas, tem revolucionado a forma como organizações e pessoas se comportam e interagem entre si.

Os processos de negócio ou mesmo o estilo de vida e de comunicação têm se tornado cada vez mais dependentes do rápido processamento de informações.

Não é mais aceitável, por exemplo, solicitar um extrato bancário e esperar que o mesmo esteja pronto no dia seguinte. A informação precisa estar disponível em tempo real, em qualquer lugar e a qualquer momento.

Neste processo revolucionário, os dados que outrora eram mantidos em meio físico, como documentos, livros, cadernos, etc. passaram a ser armazenados também em meios digitais, com vistas a diminuir custos e aumentar substancialmente a velocidade de armazenamento e recuperação de informações.

Contudo, uma vez disponíveis em meios digitais, os dados tornaram-se mais expostos e passíveis de serem obtidos por pessoas não autorizadas se as devidas medidas de segurança não forem tomadas. Tais medidas devem garantir que somente pessoas autorizadas tenham acesso concedido às informações e somente à porção que as cabe.

O desenvolvimento de um banco de dados deve, invariavelmente, também considerar os aspectos de segurança de informação. É possível aplicar diferentes níveis de controle de acesso, desde criptografia na conexão ao servidor (SSL) até um nível mais granular, como o direito de executar um select sobre uma tabela, por exemplo.

Os SGBDs atuais oferecem uma vasta gama de recursos que podem ser aplicados à proteção da informação. É possível, por exemplo, estabelecer regras de acesso a dados e metadados, criptografar informações, limitar conexões por usuário ou host, entre outras funcionalidades. Este é o caso do PostgreSQL.

Neste contexto, este artigo visa analisar o controle de acesso realizado através do uso de roles no PostgreSQL 9.1. Serão vistos aspectos conceituais e práticos da criação e manipulação de grupos e usuários através do uso de roles. Toda a abordagem teórica será acompanhada de vários exemplos para melhor fixar os conceitos.

Empresa ABC – Estudo de Caso

A empresa ABC precisa de um novo sistema para gerenciar seu estoque de produtos, controlando o processo de compras e vendas. Além de prover os requisitos funcionais, o sistema deve priorizar a segurança da informação armazenada e processada, conforme fica evidenciado no trecho abaixo, transposto do documento de análise de requisitos:

A aplicação deve prezar pelo controle minucioso de acesso aos dados. Os usuários não poderão, de forma alguma, alterar, ler, adicionar ou excluir dados a que funcionalmente, dentro dos processos de negócio vigentes, não tenham direito de fazê-lo.

Para determinar os direitos de acesso de cada usuário sobre os objetos de negócio no sistema, deve-se utilizar a tabela de referência apresentada na Tabela 1.

Legenda:

C – Cadastrar

E – Excluir

S – Selecionar

A – Atualizar

T – Todos

Área de Negócio

Compras

Venda

Financeiro

Gerência

Objeto de Negócio

Produtos

T

S

S

S

Estoques

A - S

A – S

T

S

Clientes

S

T

A - S

S

Notas Fiscais

C – S - A

C – S - A

A - S

S

Tabela 1. Tabela de Privilégios

Com base nas informações recolhidas durante o processo de análise, ficou decidido que a modelagem entidade relacionamento, mostrada na Figura 1, seria a mais adequada para atender as expectativas da empresa ABC.

O modelo de entidades e relacionamentos é um modelo abstrato cuja finalidade é descrever, de maneira conceitual, os dados a serem utilizados em um sistema de informações ou que pertencem a um domínio. A principal ferramenta do modelo é sua representação gráfica, o diagrama entidade relacionamento. Normalmente o modelo e o diagrama são conhecidos por suas siglas: MER e DER.

...
Quer ler esse conteúdo completo? Tenha acesso completo