====== PostgreSQL en version portable pour Windows ====== {{ :journal_geek:postgresql_portable_sourceforge.png?600|}}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** {{ :journal_geek:postgresql_portable_dossier.png |}} Lancement du programme **PostgreSQLPortable.exe**. Une fenêtre s'ouvre avec un message d'initialisation. {{ :journal_geek:postgresql_portable_01.png |}} Vient l'invite de commandes PostgreSQL. Il est temps de s'y mettre... {{ :journal_geek: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. 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 |