18.2. Criação de banco de dados

Para ser possível criar um banco de dados, o servidor PostgreSQL deve estar em execução (consulte a Seção 16.3).

Os bancos de dados são criados através do comando SQL CREATE DATABASE:

CREATE DATABASE nome_do_banco_de_dados;

onde nome_do_banco_de_dados segue as regras usuais para identificadores SQL. O usuário corrente se torna, automaticamente, o dono do novo banco de dados. É um privilégio do dono do banco de dados removê-lo posteriormente (o que também remove todos os objetos contidos no banco de dados, mesmo que sejam de outro dono).

A criação de bancos de dados é uma operação restrita. Veja como conceder permissão na Seção 17.2.

Uma vez que é necessário estar conectado ao servidor de banco de dados para poder executar o comando CREATE DATABASE, a questão é como pode ser criado o primeiro banco de dados de um determinado agrupamento. O primeiro banco de dados é sempre criado pelo utilitário initdb quando a área de armazenamento de dados é inicializada (Consulte a Seção 16.2). Este banco de dados se chama template1. Portanto, para criar o primeiro banco de dados "de verdade" é necessário se conectar ao banco de dados template1.

O nome template1 (modelo1) não é um acidente: Quando se cria um novo banco de dados, o banco de dados modelo é essencialmente clonado. Isto significa que qualquer mudança feita em template1 é propagada para todos os bancos de dados criados posteriormente. Implica que o banco de dados modelo não deve ser utilizado para trabalho, mas estafuncionalidade, usada com bom senso, pode ser conveniente. Na Seção 18.3 podem ser vistos mais detalhes.

Para facilitar, também existe um programa que pode ser executado a partir do interpretador de comandos para criar novos bancos de dados, o createdb:

createdb nome_do_banco_de_dados

O utilitário createdb não realiza nenhuma mágica: se conecta ao banco de dados template1 e executa o comando CREATE DATABASE, exatamente como descrito acima. A página de referência de createdb contém os detalhes da chamada. Deve ser observado que executar createdb sem nenhum argumento cria um banco de dados com o mesmo nome do usuário corrente, que pode ser o desejado, ou não.

Nota: O Capítulo 19 contém informações sobre como restringir quem pode se conectar a um determinado banco de dados.

Algumas vezes se deseja criar um banco de dados para outra pessoa. Este usuário deve se tornar o dono do novo banco de dados e, portanto, poder configurá-lo e gerenciá-lo por si próprio. Para fazer isto deve ser utilizado um dos seguintes comandos:

CREATE DATABASE nome_do_banco_de_dados OWNER nome_do_usuário;

a partir do ambiente SQL, ou

createdb -O nome_do_usuário nome_do_banco_de_dados

a partir do interpretador de comandos. É necessário ser um superusuário para poder criar bancos de dados para outros usuários.

SourceForge.net Logo CSS válido!