GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer postgresql pour la première fois ?

Les autres réponses ne me satisfaisaient pas complètement. Voici ce qui a fonctionné pour postgresql-9.1 sur Xubuntu 12.04.1 LTS.

  1. Connectez-vous à la base de données par défaut avec l'utilisateur postgres :

    sudo -u postgres modèle psql1

  2. Définissez le mot de passe pour l'utilisateur postgres, puis quittez psql (Ctrl-D) :

    ALTER USER postgres avec le mot de passe crypté 'xxxxxxx' ;

  3. Modifiez le pg_hba.conf fichier :

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    et changez "peer" en "md5" sur la ligne concernant postgres :

    local      tous     postgres pair md5

    Pour savoir quelle version de postgresql vous utilisez, recherchez le dossier de version sous /etc/postgresql . Vous pouvez également utiliser Nano ou un autre éditeur au lieu de VIM.

  4. Redémarrez la base de données :

    sudo /etc/init.d/postgresql redémarrage

    (Ici, vous pouvez vérifier si cela a fonctionné avec psql -U postgres ).

  5. Créez un utilisateur ayant le même nom que vous (pour le trouver, vous pouvez taper whoami ):

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    Les options indiquent à postgresql de créer un utilisateur qui peut se connecter, créer des bases de données, créer de nouveaux rôles, est un superutilisateur et aura un mot de passe crypté. Les plus importants sont -P -E, pour qu'on vous demande de taper le mot de passe qui sera crypté, et -d pour que vous puissiez faire un createdb .

    Méfiez-vous des mots de passe :il vous demandera d'abord deux fois le nouveau mot de passe (pour le nouvel utilisateur), répété, puis une fois le mot de passe postgres (celui spécifié à l'étape 2).

  6. Encore une fois, modifiez le pg_hba.conf fichier (voir étape 3 ci-dessus), et remplacez "peer" par "md5" sur la ligne concernant "tous" les autres utilisateurs :

    local      tous     tous pair md5

  7. Redémarrez (comme à l'étape 4), et vérifiez que vous pouvez vous connecter sans -U postgres :

    modèle psql1

    Notez que si vous faites un simple psql , il échouera car il essaiera de vous connecter à une base de données par défaut portant le même nom que vous (c'est-à-dire whoami ). template1 est la base de données d'administration qui est ici depuis le début.

  8. Maintenant createdb <dbname> devrait fonctionner.


Sous Linux, PostgresQL est généralement configuré pour permettre à l'utilisateur root de se connecter en tant que superutilisateur postgres postgres depuis le shell (console ou ssh).

$ psql -U postgres

Ensuite, vous créerez simplement une nouvelle base de données comme d'habitude :

CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;

Cela devrait fonctionner sans toucher à pg_hba.conf . Si vous voulez pouvoir le faire en utilisant un outil graphique sur le réseau, vous devrez alors jouer avec pg_hba.conf .


Il existe deux méthodes que vous pouvez utiliser. Les deux nécessitent la création d'un utilisateur et une base de données.

  1. Utilisation de createuser et createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Utilisation des commandes d'administration SQL et connexion avec un mot de passe sur TCP

    $ sudo -u postgres psql postgres
    

    Et puis dans le shell psql

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Ensuite, vous pouvez vous connecter,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Si vous ne connaissez pas le port, vous pouvez toujours l'obtenir en exécutant ce qui suit, comme le postgres utilisateur,

    SHOW port;
    

    Ou,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Note complémentaire :le postgres utilisateur

Je suggère PAS modifier le postgres utilisateur.

  1. Il est normalement verrouillé depuis le système d'exploitation. Personne n'est censé "se connecter" au système d'exploitation en tant que postgres . Vous êtes censé avoir root pour vous authentifier en tant que postgres .
  2. Il n'est normalement pas protégé par un mot de passe et délègue au système d'exploitation hôte. C'est une bonne chose . Cela signifie normalement pour se connecter en tant que postgres qui est l'équivalent PostgreSQL du SA de SQL Server , vous devez disposer d'un accès en écriture aux fichiers de données sous-jacents. Et cela signifie que vous pourriez normalement faire des ravages de toute façon.
  3. En gardant cette option désactivée, vous supprimez le risque d'une attaque par force brute via un super-utilisateur nommé. Masquer et masquer le nom du superutilisateur présente des avantages.

Linux
  1. Comment installer et configurer Postgres 13 Ubuntu 20.04

  2. Comment installer et configurer Postgres 13 sur Centos 8

  3. Comment installer et configurer Postgres 14 sur Debian 11

  4. Comment installer et configurer Postgres 14 sur Fedora 34

  5. Comment forcer un utilisateur à changer de mot de passe lors de sa première connexion en utilisant ssh ?

Comment configurer votre Raspberry Pi OS pour l'utiliser pour la première fois

Comment connaître les groupes d'un utilisateur Linux

Comment configurer le CRM ONLYOFFICE pour les besoins de votre entreprise

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Comment installer et configurer le pare-feu CSF pour Linux

Comment effacer les informations d'identification dans AWS Configure ?