P>

Clique aqui para ler todos os artigos desta edição
PostgreSQL 8.1
O paquiderme mais forte do que nunca
Diogo de Oliveira Biazus
Há aproximadamente um ano escrevi para a SQL Magazine um artigo sobre a versão 8.0 do PostgreSQL. O projeto avançou bastante desde então, culminando com o lançamento da versão 8.1. A nova versão vem para consolidar a posição de SGBD de nível corporativo com várias características adicionais voltadas a grandes bancos, bases distribuídas e datawarehousing. Além disso, o porte para Windows também recebeu atenção e a opção pelo PostgreSQL
O apoio de grandes empresas e a crescente comunidade de usuários fortalecem o produto tornando-o cada vez mais confiável para soluções de todos os tipos. O ano passado foi importante para o projeto também devido a entrada de mais uma grande empresa no time de apoiadores do PostgreSQL, a Sun Microsystems (http://br.sun.com/sunnews/feature/2005/20051130.html). Podemos esperar uma grande integração e ótima performance na plataforma Solaris 10. Além disso, surge uma versão derivada do PostgreSQL, mas também open source, para datawarehouse, o Bizgres (http://www.bizgres.org/). Desenvolvido pela empresa Greenplum, o projeto conta com o apoio de desenvolvedores do projeto central.
Além de descrever em detalhe as mudanças mais significativas, pretendo mostrar nesta matéria como utilizar algumas novidades na administração e utilização do banco. No artigo também abordarei alguns projetos paralelos como o PGAdmin III que ganhou cara nova e está bem mais funcional e atraente. Para obter a lista oficial de mudanças divulgada no site internacional do PostgreSQL, o leitor pode acessar o endereço http://www.postgresql.org/about/press/presskit81.html.br onde encontrará uma tradução das notas de lançamento para o português. Vamos agora às novidades.
Papéis: Administrando usuários
A utilização do conceito de papéis (roles) ao invés do antigo modelo de usuário e grupo é algo que será bem vindo pelos administradores de sistemas. Os papéis servem ao mesmo propósito, sendo, porém, mais simples e flexíveis.
A entidade papel engloba os usuários e os grupos podendo assumir os dois comportamentos dependendo de como estiver configurado. Um papel pode possuir objetos em um banco de dados e também atribuir direitos a outros papéis, atuando como usuário. Além disso, é possível dizer que um papel faz parte de outro, de modo que ele herde todos os privilégios deste. Você poderia criar um papel para os usuários do sistema chamado “usuario”, esse papel teria direitos de leitura em todo o banco e de gravação em determinadas tabelas. Então seria possível criar um papel para um usuário específico, o usuário fulano, e colocar o papel de fulano como integrante do papel “usuario”, para que ele tenha automaticamente os direitos já definidos. Nesse exemplo, o papel “usuario” se comporta como um grupo, enquanto o papel “fulano” se comporta como usuário. Com o sistema de papéis eu ainda poderia criar outro papel chamado “administrador” que faz parte do papel “usuario”, mas tem direitos adicionais, e depois posso incluir papéis de usuários específicos como integrantes de “administrador”. Vou falar agora um pouco sobre como gerenciar esses papéis na nova versão do PostgreSQL e como os comandos antigos vão se comportar.
Para criar papéis, podemos usar o comando CREATE ROLE, e para excluí-los o DROP ROLE (ver Listagem 1).
Listagem 1. Comandos de criação e exclusão de papéis.
-- Cria papel simples para ser usada como grupo de usuários, sem nenhum atributo
CREATE ROLE nome_papel;
-- Cria papel capaz de conectar como usuário
CREATE ROLE nome_papel LOGIN;
-- Cria papel capaz de conectar como usuário e integrante da role usuario_sistema
CREATE ROLE nome_papel LOGIN IN ROLE usuario_sistema;
-- Cria papel para criar bancos e usuários, mas que não é super usuário
CREATE ROLE manutencao LOGIN CREATEDB CREATEROLE;
-- Cria papel de super usuário com senha já definida
CREATE ROLE superusuario LOGIN PASSWORD 'senha' SUPERUSER;