Files
2026-05-15 09:29:56 +02:00

130 lines
5.1 KiB
Markdown

# PostgreSQL en version portable pour Windows
![](postgresql_portable_sourceforge.png)Le 07 janvier 2020,
Trouvé sur le site Sourceforge, la version portable de **PostgreSQL 10.4.1**. Il est annoncé qu'il n'y a pas besoin d'avoir des droits administrateur, ou un compte utilisateur `postgres` dans Windows pour faire fonctionner cette version portable. Ce SGBD fonctionne avec tous les comptes Windows. Il suffit de télécharger l'archive et de décompresser dans un dossier utilisateur.
> https://sourceforge.net/projects/postgresqlportable/
Il y a également une version packagée pour la bibliothèque **Portable Apps**.
Malheureusement, je n'ai pas trouvé de version 11.
## Déployer
J'ai téléchargé la version archivée en 10.1.1. Il s'agit d'un fichier ZIP se trouvant dans l'arborescence **10.1.1/PostgreSQL Portable v10.1.1.zip**. Il a une taille de 20 Mo.
Le fichier **v10.4.1/PostgreSQL Portable v10.4.1** contient les fichiers patchés. Je la déploie donc, dans le même dossier. Il s'agit du dossier **PostgreSQLPortable-10**
![](postgresql_portable_dossier.png)
Lancement du programme **PostgreSQLPortable.exe**. Une fenêtre s'ouvre avec un message d'initialisation.
![](postgresql_portable_01.png)
Vient l'invite de commandes PostgreSQL. Il est temps de s'y mettre...
![](postgresql_portable_02.png)
## Créer un rôle
Création d'un rôle (utilisateur) avec affectation du rôle `Création de base` et affectation d'un mot de passe.
```SQL
postgres=# CREATE USER cedric;
CREATE ROLE
postgres=# ALTER ROLE cedric WITH CREATEDB;
ALTER ROLE
postgres=# ALTER USER cedric WITH ENCRYPTED PASSWORD '<password>';
ALTER ROLE
```
Vérification des utilisateurs présent avec la commande `\du`.
```
postgres=# \du
Liste des rôles
Nom du rôle | Attributs | Membre de
-------------+---------------------------------------------------------------------------------+-----------
cedric | Créer une base | {}
postgres | Superutilisateur, Créer un rôle, Créer une base, Réplication, Contournement RLS | {}
```
Création de la base de données avec affectation des privilèges à l'utilisateur.
```
postgres=# CREATE DATABASE cedric OWNER cedric;
CREATE DATABASE
postgres=# grant all privileges on database cedric to cedric;
GRANT
```
Vérification de la présence des bases de données avec la commande `\l`.
```
postgres=# \l
Liste des bases de données
Nom | Propriétaire | Encodage | Collationnement | Type caract. | Droits d'accès
-----------+--------------+----------+-----------------+--------------+-----------------------
cedric | cedric | UTF8 | C | C | =Tc/postgres +
| postgres=CTc/postgres+ |
| --- |
| cedric=CTc/postgres |
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| postgres=CTc/postgres |
template1 | postgres | UTF8 | C | C | =c/postgres +
| postgres=CTc/postgres |
(4 lignes)
```
## Changer de base de données et d'utilisateur
Changer d'utilisateur avec la commande `\connect`. Vous remarquerez le changement de l'invite au fur et à mesure de la validation des commandes. La commande `\conninfo` affiche les informations de connexion.
```
postgres-# \conninfo
Vous êtes connecté à la base de données « postgres » en tant qu'utilisateur « postgres » sur l'hôte « localhost » via le port « 5432 ».
postgres-# \connect cedric
Vous êtes maintenant connecté à la base de données « cedric » en tant qu'utilisateur « postgres ».
cedric-# \conninfo
Vous êtes connecté à la base de données « cedric » en tant qu'utilisateur « postgres » sur l'hôte « localhost » via le port « 5432 ».
cedric-# \connect cedric cedric
Vous êtes maintenant connecté à la base de données « cedric » en tant qu'utilisateur « cedric ».
cedric-> \conninfo
Vous êtes connecté à la base de données « cedric » en tant qu'utilisateur « cedric » sur l'hôte « localhost » via le port « 5432 ».
```
## Créer une base de données
Lors de la création de la base de données, on précise le propriétaire. On pourrait en renseigner d'autres :
```
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
[ CONNECTION LIMIT [=] connlimit ] ]
```
Création :
```
cedric=# create database gestfiles owner cedric;
CREATE DATABASE
```
Vérification :
```
cedric=# \l
Liste des bases de données
Nom | Propriétaire | Encodage | Collationnement | Type caract. | Droits d'accès
-----------+--------------+----------+-----------------+--------------+-----------------------
gestfiles | cedric | UTF8 | C | C |
```