Partage
  • Partager sur Facebook
  • Partager sur Twitter

postgresql, venv, user, droits d'accès, etc…

    30 juillet 2021 à 21:35:23

    Bonjour, Une question sur la gestion des droits et bonnes pratiques avec postgresql. J'ai voulu commencer le tuto django. J'ai galéré à faire fonctionner psql. Le tuto est loin d'être clair sur cette partie. Mais ça marche.

    Bon, pour résumer :

    1. installation sudo dnf install postgresql => Ok, facile et très orthodoxe.
    2. Ensuite la feinte, c'est que postgresql n'accepte que n'importe qui accède à la base de données, donc sudo -i -U postgres qui est apparemment un utilisateur par défaut à l'installation. Comme je veux bosser dans un environnement virtuel que j'ai créé sous PyCharm, je tape la commande dans le terminal de pycharm. Très bien, ça fonctionne, mais : pourquoi spécifiquement l'utilisateur « postgres » ? Ne serait-il pas logique que n'importe quel utilisateur puisse créer sa base de données, et ai les pleins droits dessus et pas sur celle des autres ? Au lieu de cela, tout le monde doit demander les droit d'un même utilisateur bizarre ? Je vois bien que j'ai loupé un épisode. Je ne comprends pas trop le concept.
    3. ensuite psql pour accéder à l'interface de postgresql en tant qu'utilisateur « postqres ». ça fonctionne.
    4. ensuite toujours avec le même user : createdb -O user bdd => là pareil, je ne comprends pas cette notion d'user. Je suis déjà connecté en tant que « postgres ». Si je mets un autre user dans la commande, ça ne fonctionne pas. Donc je n'ai le droit de créer qu'une base de données appartement à « postgres » ce qui est logique puisque je suis « postgres » à ce moment. Je comprends bien que l'un est l'user linux et que l'autre est l'user dans la base. Mais pourquoi sont ils liés (ça me paraîtrait plus simple qu'à la connexion psql demande simplement le login+mot de passe de mon choix non) ? Et, même dans ce cas pourquoi devoir utiliser un autre user que celui que j'utilise d'habitude ? Deuxième question, la bdd n'est pas du tout liée à mon projet ou à mon virtual env ? Ne serait-il pas plus logique qu'elle soit crée dans le même dossier voire administrable uniquement depuis ce venv ?

    Quand je lance un \l j'ai en plus de mes bdd, une base « postgres », une « template0 » et une « template1 ». C'est quoi ? Je peux supprimer ? Ça peut servir plus tard ?

    Et dernière question par rapport à tout ça : Quelles sont les « bonnes pratiques » pour garder un système propre et sécurisé, en développement et en production ?

    Ça fait vraiment questions débutant, mais en même temps, ça me parait vraiment bordélique ces histoire d'user.

    Edit : Je rajoute une question : lorsque je lance ./manage.py migrate j'ai une erreur « django.db.utils.OperationalError: FATAL: authentification peer échouée pour l'utilisateur “postgres” ». Ce qui n'est pas forcément illogique, puisque je dois lancer la commande avec mon user habituel, postgres n'ayant pas accès à ma session. Mais du coup, je fais comment ?

    -
    Edité par Megalo 30 juillet 2021 à 21:43:24

    • Partager sur Facebook
    • Partager sur Twitter

    postgresql, venv, user, droits d'accès, etc…

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown