Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| serveurs:installation:db-srv:postgresql-ssh-tunnel [2021/07/30 10:03] – [Configuration de l'accès avec DBeaver] jpmilcent | serveurs:installation:db-srv:postgresql-ssh-tunnel [2026/09/16 16:28] (Version actuelle) – [Création d'un utilisateur "dbreader" sans "home"] jpmilcent | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| ===== Création d'un utilisateur " | ===== Création d'un utilisateur " | ||
| L' | L' | ||
| - | * Création de l' | + | * Création de l' |
| - | * Créer un utilisateur sans possibilité de se loguer à un shell '' | + | * Créer un utilisateur sans possibilité de se loguer à un shell '' |
| - | * Ajouter un mot de passe à l' | + | * Ajouter un mot de passe à l' |
| - | * Modifier le fichier de config du serveur SSH pour permettre un accès par mot de passe uniquement pour cet utilisateur : '' | + | * Modifier le fichier de config du serveur SSH pour permettre un accès par mot de passe uniquement pour cet utilisateur : '' |
| * Ajouter à la fin du fichier les lignes suivantes (**il est important que ces lignes soient bien complètement à la fin du fichier**) : <code properties> | * Ajouter à la fin du fichier les lignes suivantes (**il est important que ces lignes soient bien complètement à la fin du fichier**) : <code properties> | ||
| Match User dbreader | Match User dbreader | ||
| Ligne 20: | Ligne 20: | ||
| AuthorizedKeysFile | AuthorizedKeysFile | ||
| </ | </ | ||
| - | * Vous pouvez copier/ | + | * Vous pouvez copier/ |
| - | * Il est nécessaire de définir les droits sur le fichier /// | + | * Il est nécessaire de définir les droits sur le fichier /// |
| * Notez qu'il est aussi possible de combiner les deux possibilités (par mot de passe et clé SSH) ainsi : <code properties> | * Notez qu'il est aussi possible de combiner les deux possibilités (par mot de passe et clé SSH) ainsi : <code properties> | ||
| Match User dbreader | Match User dbreader | ||
| Ligne 28: | Ligne 28: | ||
| Banner none | Banner none | ||
| </ | </ | ||
| - | * Pour éviter l' | + | * Pour éviter l' |
| - | * Redémarrer le serveur //Sshd// : '' | + | * Redémarrer le serveur //Sshd// : '' |
| - | * Tester la connexion au serveur : '' | + | * Tester la connexion au serveur : '' |
| * Cela devrait afficher : < | * Cela devrait afficher : < | ||
| Could not chdir to home directory / | Could not chdir to home directory / | ||
| Ligne 36: | Ligne 36: | ||
| Connection to db-paca-sinp closed. | Connection to db-paca-sinp closed. | ||
| </ | </ | ||
| + | * Pour supprimer l' | ||
| + | * Descendez jusqu' | ||
| + | * Ajoutez la ligne : '' | ||
| + | * Le bloc devrait ressembler exactement à ça :< | ||
| + | session [success=2 default=ignore] pam_succeed_if.so user = dbreader | ||
| + | session | ||
| + | session | ||
| + | </ | ||
| + | * Si vous n'avez qu'une seule ligne '' | ||
| + | * Après l' | ||
| ===== Création d'un utilisateur en lecture seule pour Postgresql ===== | ===== Création d'un utilisateur en lecture seule pour Postgresql ===== | ||
| ==== Création de l' | ==== Création de l' | ||
| + | |||
| * Se connecter à la base avec un compte superadmin : '' | * Se connecter à la base avec un compte superadmin : '' | ||
| - | * Exécuter les requêtes suivantes :<code sql> | + | * Pour attribuer les droits de lecture seule à un utilisateur, |
| -- Créer l' | -- Créer l' | ||
| CREATE USER gnreader WITH ENCRYPTED PASSWORD '< | CREATE USER gnreader WITH ENCRYPTED PASSWORD '< | ||
| Ligne 49: | Ligne 60: | ||
| GRANT CONNECT ON DATABASE gnatlas TO gnreader ; | GRANT CONNECT ON DATABASE gnatlas TO gnreader ; | ||
| + | -- Associer l' | ||
| + | GRANT pg_read_all_data TO gnreader; | ||
| + | </ | ||
| + | * Pour révoquer les droits d' | ||
| + | |||
| + | === 🗑️ Base " | ||
| + | * Se connecter à la base "// | ||
| + | * Exécuter les requêtes suivantes :<code sql> | ||
| -- Autoriser l' | -- Autoriser l' | ||
| -- 1. Générer la requête à exécuter | -- 1. Générer la requête à exécuter | ||
| Ligne 75: | Ligne 94: | ||
| -- Ajouter l' | -- Ajouter l' | ||
| -- Réutiliser la requête précédente et remplacer la première et la dernière ligne : | -- Réutiliser la requête précédente et remplacer la première et la dernière ligne : | ||
| - | ALTER DEFAULT PRIVILEGES IN SCHEMA | + | ALTER DEFAULT PRIVILEGES |
| pg_toast, pg_temp_1, pg_toast_temp_1, | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| GRANT SELECT ON TABLES TO gnreader ; | GRANT SELECT ON TABLES TO gnreader ; | ||
| + | -- Ajouter l' | ||
| + | -- Réutiliser la requête précédente et remplacer la dernière ligne : | ||
| + | ALTER DEFAULT PRIVILEGES FOR USER gnreader IN SCHEMA | ||
| + | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| + | GRANT SELECT ON SEQUENCES TO gnreader ; | ||
| </ | </ | ||
| + | |||
| + | === 🗑️ Base " | ||
| + | * Se connecter à la base avec un compte superadmin : '' | ||
| + | * Exécuter les requêtes suivantes :<code sql> | ||
| + | -- Autoriser l' | ||
| + | -- 1. Générer la requête à exécuter | ||
| + | SELECT 'GRANT USAGE ON SCHEMA ' || string_agg(nspname, | ||
| + | |||
| + | -- 2. Exécuter la requête obtenue précédemment | ||
| + | GRANT USAGE ON SCHEMA | ||
| + | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| + | TO gnreader ; | ||
| + | |||
| + | -- Autoriser l' | ||
| + | -- 1. Générer la requête à exécuter | ||
| + | SELECT 'GRANT SELECT ON ALL TABLES IN SCHEMA ' || string_agg(nspname, | ||
| + | |||
| + | -- 2. Exécuter la requête obtenue précédemment | ||
| + | GRANT SELECT ON ALL TABLES IN SCHEMA | ||
| + | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| + | TO gnreader ; | ||
| + | |||
| + | -- Autoriser l' | ||
| + | -- Réutiliser la requête précédente et remplacer " | ||
| + | GRANT SELECT ON ALL SEQUENCES IN SCHEMA | ||
| + | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| + | TO gnreader ; | ||
| + | |||
| + | -- Ajouter l' | ||
| + | -- Réutiliser la requête précédente et remplacer la première et la dernière ligne : | ||
| + | ALTER DEFAULT PRIVILEGES FOR USER gnreader IN SCHEMA | ||
| + | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| + | GRANT SELECT ON TABLES TO gnreader ; | ||
| + | |||
| + | -- Ajouter l' | ||
| + | -- Réutiliser la requête précédente et remplacer la dernière ligne : | ||
| + | ALTER DEFAULT PRIVILEGES FOR USER gnreader IN SCHEMA | ||
| + | pg_toast, pg_temp_1, pg_toast_temp_1, | ||
| + | GRANT SELECT ON SEQUENCES TO gnreader ; | ||
| + | |||
| + | -- Ajouter l' | ||
| + | GRANT USAGE ON FOREIGN SERVER geonaturedbserver TO gnreader ; | ||
| + | |||
| + | GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO gnreader ; | ||
| + | |||
| + | CREATE USER MAPPING FOR gnreader SERVER geonaturedbserver OPTIONS (user ' | ||
| + | </ | ||
| + | |||
| + | === Ajout d'un espace permetant la création de table/VM pour gnreader === | ||
| + | |||
| + | // | ||
| + | Cela permettra la création de table ou VM pour des requêtes d' | ||
| + | |||
| + | <code sql> | ||
| + | -- Création du schéma " | ||
| + | CREATE SCHEMA playground AUTHORIZATION geonatadmin; | ||
| + | |||
| + | -- Ajout des droits d' | ||
| + | GRANT USAGE, CREATE ON SCHEMA playground TO gnreader; | ||
| + | </ | ||
| + | |||
| + | |||
| ==== Modification des autorisations d' | ==== Modification des autorisations d' | ||
| Ligne 85: | Ligne 171: | ||
| * Ajouter le contenu suivant : <code properties> | * Ajouter le contenu suivant : <code properties> | ||
| # GeoNature : access by gnreader (read only) | # GeoNature : access by gnreader (read only) | ||
| - | host geonature2db | + | host geonature2db |
| - | host gnatlas | + | host gnatlas |
| </ | </ | ||
| * Recharger la configuration // | * Recharger la configuration // | ||
| ==== Configuration de l' | ==== Configuration de l' | ||
| - | * Tester la connexion en lecture seule depuis Dbeaver en créant une nouvelle connexion | + | Vous pouvez configurer votre accès |
| - | * Onglet Général | + | |
| - | * Host : localhost (tester aussi 10.0.1.20 en cas de problème) | + | |
| - | * Port : 5432 | + | |
| - | * Database : geonature2db | + | |
| - | * Authentification : Database Native | + | |
| - | * Nom d' | + | |
| - | * Mot de passe : < | + | |
| - | * Cocher "Save password locally" | + | |
| - | * Driver name : PostgreSQL | + | |
| - | * Onglet Postgresql : | + | |
| - | * Cocher "Show all databases" | + | |
| - | * Laisser les autres champs avec les valeurs par défaut. | + | |
| - | * Onglet SSH : | + | |
| - | * Cocher " | + | |
| - | * Hôte/IP : < | + | |
| - | * Port : < | + | |
| - | * Nom d' | + | |
| - | * Pour une connexion via le mot de passe : | + | |
| - | * Méthode d' | + | |
| - | * Mot de passe : < | + | |
| - | * Cocher " | + | |
| - | * Pour une connexion via une clé SSH : | + | |
| - | * Méthode d' | + | |
| - | * Clé privée : indiquer le chemin vers votre clé SSH privée (Ex. : ''/ | + | |
| - | * Phrase passe : indiquer votre "passe phrase" | + | |
| - | * Cocher " | + | |
| - | * Cliquer en bas à gauche sur "Test de la connexion..." | + | |