18.2. Cr�ation d'une base de donn�es

Pour pouvoir cr�er une base de donn�es, il faut que le serveur PostgreSQL soit lanc� (voir la Section 16.3).

Les bases de donn�es sont cr��es � l'aide de la commande SQL CREATE DATABASE :

     CREATE DATABASE nom;
    

ou nom suit les r�gles habituelles pour les identifiants SQL. L'utilisateur actuel devient automatiquement le propri�taire de la nouvelle base de donn�es. C'est au propri�taire de la base de donn�es qu'il revient de la supprimer par la suite (ce qui supprime aussi tous les objets qu'elle contient, m�me s'ils ont un propri�taire diff�rent).

La cr�ation de bases de donn�es est une op�ration prot�g�e. Voir la Section 17.2 sur la mani�re d'attribuer des droits.

Comme vous devez �tre connect� au serveur de base de donn�es pour ex�cuter la commande CREATE DATABASE, reste � savoir comment cr�er la premi�re base de donn�es d'un site. La premi�re base de donn�es est toujours cr��e par la commande initdb quand l'aire de stockage des donn�es est initialis�e. (Voir la Section 16.2.) Cette base de donn�es est appel�e template1. Donc, pour cr�er la premi�re base de donn�es proprement dite, vous pouvez vous connecter � template1.

Le nom template1 n'a pas �t� choisi au hasard : quand une nouvelle base de donn�es est cr��e, la base de donn�e mod�le template1 est en fait clon�e. Cela signifie que tous les changements effectu�s sur template1 sont propag�s � toutes les bases de donn�es cr��es ult�rieurement. Cela implique que vous ne devriez pas utiliser la base de donn�es mod�le pour votre travail quotidien mais cette propri�t�, utilis�e judicieusement, peut �tre utile. Pour plus de d�tails, voir la Section 18.3.

Pour plus de confort, il existe aussi un programme que vous pouvez ex�cuter � partir du shell pour cr�er de nouvelles bases de donn�es, createdb.

     createdb nombase
    

createdb ne fait rien de magique. Il se connecte � la base de donn�es template1 et ex�cute la commande CREATE DATABASE, exactement comme ci-dessus. La page de r�f�rence sur createdb contient les d�tails de son invocation. Notez que createdb sans aucun argument cr�e une base de donn�e portant le nom de l'utilisateur courant, ce qui n'est peut-�tre pas ce que vous voulez.

Note�: Le Chapitre 19 contient des informations sur la mani�re de restreindre l'acc�s � une base de donn�es.

Parfois vous voulez cr�er une base de donn�es pour quelqu'un d'autre. Cet utilisateur doit devenir le propri�taire de la nouvelle base de donn�es, afin de pouvoir la configurer et l'administrer lui-m�me. Pour faire ceci, utilisez l'une des commandes suivantes :

     CREATE DATABASE nombase OWNER
     nomutilisateur;
    

dans l'environment SQL ou

     createdb -O nomutilisateur nombase
    

dans le shell. Vous devez �tre super-utilisateur pour cr�er une base de donn�es pour quelqu'un d'autre.