# 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 ''; 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 | ```