PostgreSQL

De OpenWikiBSD.

Sommaire

Installation

pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/i386/postgresql-server          
mkdir -p /var/postgresql
su - _postgresql
mkdir /var/postgresql/data
initdb -D /var/postgresql/data -U user -A md5 -W

=>Mdp

postgres -D /var/postgresql/data &
echo "
#Demarrage PostgreSQL
su - _postgresql /usr/local/bin/postgres -D /var/postgresql/data
" >> /etc/rc.local

Fichiers de conf

  • Rep /var/postgresql
  • Fichier /var/postgresql/data/pg_hba.conf


Usage, création des bdd

  • Création BDD
/usr/local/bin/createdb -U user -h localhost BDD

Password: 
CREATE DATABASE
  • Création structure BDD
/usr/local/bin/psql -U user -h localhost -d BDD -f ./install.sql


  • Accéder aux BDD
/usr/local/bin/psql -U user -h localhost -d BDD

Gestion des utilisateurs

  • Ajout des utilisateurs
/usr/local/bin/createuser -U user -h localhost -d New_User
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Password: 
CREATE ROLE

Ou bien

postgres=# CREATE USER monUser WITH PASSWORD 'SonPassword';


  • Qui sont-ils ?
 postgres=# SELECT * from pg_shadow ;
   usename   | usesysid | usecreatedb | usesuper | usecatupd |               passwd                | valuntil | useconfig 
-------------+----------+-------------+----------+-----------+-------------------------------------+----------+-----------
 toto        |    19875 | t           | f        | f         |                                     |          | 
 postgreSQL  |       10 | t           | t        | t         | md57689mpj651a699eeca624309gdukht8d |          | 
 (2 rows)
  • Changer le mot de passe de XYZ
postgres=# ALTER USER user WITH PASSWORD 'PASSWORD';
ALTER ROLE
  • Changer les droits de XYZ sur la base ABC
USER=# grant all on OBJET to USER;
GRANT


Important. Il n'est pas possible d'augmenter les privilèges sur une base, mais sur des objets seulement.

Exemple , si vous utilisez l'excellent Studs

 studs=# \d
                  List of relations
 Schema |          Name           |   Type   | Owner 
--------+-------------------------+----------+-------
 public | comments                | table    | toto
 public | comments_id_comment_seq | sequence | toto
 public | sondage                 | table    | toto
 public | sujet_studs             | table    | toto
 public | user_studs              | table    | toto
 public | user_studs_id_users_seq | sequence | toto
(6 rows)

Pour donner les droits à titi, il faudra faire :

grant all on  XXXX to  titi;

sur chacun des objets Name.

Commandes PostgreSQL

  • Commandes internes
\h : help
\q : sortir de psql
\l : Liste les BDD
\? : Liste les commandes dispos
\s : Historique
\d : Décrit la structure de la base actuelle
\c BDD : Changer de BDD


Si le prompt est : mabase> ,vous êtes utilisateur

Si le prompt est : mabase# ,vous êtes super-utilisateur

  • Supprimer une Bdd
\c postgres
drop database MABASE;
  • Supprimer un user
\c postgres
drop user MONUSER;
  • Créer une BDD en CLI
 createdb -U postgres --encoding=UNICODE  -T template0 --owner=USER BDD
  • Créer un user en CLI
 createuser -U postgres --pwprompt --encrypted --no-adduser --no-createdb USER

Administration mode ouebe

pkg_add phpPgAdmin
cd /var/www/htdocs
ln -s ../phpPgAdmin /var/www/htdocs/ssl/phpPgAdmin
Outils personnels