Controle de acesso no PostgreSQL 9.1

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.

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

[...] continue lendo...

Artigos relacionados