Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Tout juste débutant dans le monde POstgreSQL et PostGIS, je viens vers vous suite à une formation de 2 jours que je viens d'effectuer.
Je commence à mettre en place une base de donnée sous PGAdminIII dont je serai, pour le moment, le seul à utiliser. Tous les calculs que je souhaitais fonctionnent bien, sauf l'export via un COPY ... TO.
J'ai un peu farfouillé sur le net, et je pense que le problème vient des droits d'écriture/lecture sur le PC et j'avoue ne pas du tout avoir vu ça lors de ma formation. J'ai vu parlé du fichier pg_hba.conf, mais je ne comprend pas comment il fonctionne.
Pour vous faire un état des lieux, j'ai un login windows, qui permet d'arriver sur ma session PC dont je suis administrateur, un disque réseau privé, et un disque réseau commun avec le reste de la boite. Comment lié ce compte avec ma base ?
En vous remerciant d'avance.
Antoine
Hors ligne
Bonjour,
Pour pouvoir utiliser COPY TO, il faut que le répertoire cible soit accessible en écriture par l'utilisateur faisant tourner le service postgres.
Julien.
https://rjuju.github.io/
Hors ligne
En fait, c'est bien ça que je ne comprend pas.
Je suis à la recherche d'un guide expliquant un peu plus les droit d'utilisateur. Je ne comprend comment je peux être logué via mon compte windows qui est admin sur mon pc et qui a des droit de lecture/ecriture sur le disque serveur, et utiliser un autre compte via postgres ...
Hors ligne
Lorsque vous avez installé postgres, vous avez du choisir un nom d'utilisateur ainsi qu'un mot de passe pour l'utilisateur démarrant le service. Vous pouvez retrouver cet utilisateur dans les propriétés du service postgres installé. Pour information, postgres refusera de démarrer s'il est lancé en tant qu'administrateur, entre autre pour ne pas pouvoir supprimer n'importe quel fichier du serveur.
Julien.
https://rjuju.github.io/
Hors ligne
Du coup, si je comprend bien,
Prenons l'exemple que j'ai créé l'utilisateur pour postgres: user: postgres et mdp: postgres
Il faut que je crée un compte utilisateur windows postgres/postgres ayant accès au dossier pour écriture ?
Hors ligne
Non, le super utilisateur créé sur la base (CREATE ROLE...) n'a aucune existence sur le système d'exploitation, et est sans rapport avec l'utilisateur système (windows) démarrant le service. Vous avez forcément créé un utilisateur windows pour démarrer le service si vous avez utilisé l'installeur graphique (du moins jusqu'en 9.1), ça a pu changer depuis). Il faut que vous regardiez les propriétés de votre service postgres pour voir de quel utilisateur il s'agit (postgres par défaut).
Julien.
https://rjuju.github.io/
Hors ligne
Oui, logiquement dans mon exemple, c'est le postgres/postgres, par contre je ne le trouve pas comme utilisateur windows. Pour info je n'ai pas créé d'autre rôle.
Edit: du coup dans les services, j'avais 2 choix dans connexion:
- Compte système local avec "Autoriser le service à interagir avec le bureau"
- ce compte, avec mon mot de passe.
En utilisant le compte système local, je peux, du coup écrire dans mes doc/C etc... C'est déjà une bonne avancée, mais je ne sais pas si cela pose des problème pour d'autres choses
Dernière modification par ToineR (21/01/2014 11:55:06)
Hors ligne
Dans les anciennes versions de l'installeur, l'utilisateur créé n'était pas membre du groupe "utilisateur", il n’apparaissait donc pas dans la liste des utilisateurs du panneau de configuration, mais uniquement dans "gestion de l'ordinateur / utilisateurs et groupes locaux". Les problèmes qui peuvent se poser sont liés aux droits de ce compte "système local". En étant connecté en tant que super utilisateur sur la base de données, vous pouvez écraser n'importe quel fichier accessible en écriture par ce compte, il faut donc être vigilant sur la politique d'accès à la base.
Julien.
https://rjuju.github.io/
Hors ligne
D'accord, je vais regarder tout cela.
Merci beaucoup pour votre patience, j'avoue être complètement perdu pour ces histoires de droits d'utilisateur postgres/windows.
Edit: par contre dans "utilisateurs et groupes locaux" aucune trace du compte postgres qui a été créé lors de l'installation...
2ème edit: visiblement, ça a changé depuis la version 9.2 : "It seems to be a consequence of the usage of "NETWORK SERVICE" account instead of "postgres" since PostgreSQL 9.2. " c'est donc pour cela que je ne trouvais pas l'utilisateur postgres
Dernière modification par ToineR (21/01/2014 12:41:08)
Hors ligne
Effectivement, ce comportement a été changé pour l'installeur de la version 9.2, comme indiqué dans le document https://github.com/julien2512/guide_du_ … f?raw=true
A noter que pour faire tourner le service de la base de donnée, contrairement aux versions
précédentes où un compte « postgres » était créé, l'installeur va utiliser le compte windows pré-
existant « SERVICE RESEAU ». Ce compte sera ainsi celui sur le compte duquel fonctionnent les
programmes du serveur PostgreSQL. Il sera aussi utilisé pour créer physiquement le premier cluster
de la base.
Je serais par contre incapable de vous donner les droits par défaut de cet utilisateur, si vous voulez plus de détail il faudra vous tourner vers la documentation windows.
Julien.
https://rjuju.github.io/
Hors ligne
D'accord, merci beaucoup en tout cas pour votre aide. J'arriverai bien à trouver une solution.
EDIT: du coup ce que j'ai vu, (si ça intéresse quelqu'un), le COPY TO fonctionne sur un chemin en local du serveur postgres ( je ne sais pas si je suis clair), pour cela que je peux effectuer un export sur C:/ ou dans mes docs, mais cela ne fonctionne pas sur un disque réseau (exemple P:/).
Dernière modification par ToineR (21/01/2014 14:08:20)
Hors ligne
Voici les droits associés à ce compte de service :
output
-------------------------------------------------------------------------------------------------
autorite nt\service réseau
Nom de privilège Description État
============================= ========================================================= =========
SeAssignPrimaryTokenPrivilege Remplacer un jeton de niveau processus Désactivé
SeIncreaseQuotaPrivilege Ajuster les quotas de mémoire pour un processus Désactivé
SeShutdownPrivilege Arrêter le système Désactivé
SeAuditPrivilege Générer des audits de sécurité Désactivé
SeChangeNotifyPrivilege Contourner la vérification de parcours Activé
SeUndockPrivilege Retirer l'ordinateur de la station d'accueil Désactivé
SeImpersonatePrivilege Emprunter l'identité d'un client après l'authentification Activé
SeCreateGlobalPrivilege Créer des objets globaux Activé
SeIncreaseWorkingSetPrivilege Augmenter une plage de travail de processus Désactivé
SeTimeZonePrivilege Changer le fuseau horaire Désactivé
Ceci dit, il n'est pas recommandé d'utiliser ce compte de service pour des raison de sécurité, mais d'en créer un spécifique au service PG avec les permissions qui vont bien, et si possible sous le contrôle de l'AD...
A +
Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES, Expert langage SQL
Le site sur les SGBD relationnel et langage SQL : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA, ISEN Toulon, CESI Aix en Provence * * * * *
Hors ligne
j'ai installé postgres 9.3.5. sous windows 7
puis j'ai oublié le mot de passe me permettant de me connecter en tant que utilisateur postgres.
comment faire? dois je le désinstaller et reprendre l'installation?
Hors ligne
Bonjour,
Normalement vous devriez pouvoir vous connecter avec psql directement sans mot de passe (mode trust du pg_hba.conf par défaut) :
psql -p 5432
puis modifier le mot de passe de postgres :
ALTER ROLE postgres WITH PASSWORD 'toto';
Cordialement,
Sébastien.
Hors ligne
Pages : 1