Android

Jak zainstalować Postgresql na Debianie 9

Установка Postgresql в Debian 9 (Stretch)

Установка Postgresql в Debian 9 (Stretch)

Spisu treści:

Anonim

PostgreSQL, często nazywany po prostu Postgres, to ogólnodostępny obiektowy system zarządzania relacyjnymi bazami danych typu open source. PostgreSQL ma wiele zaawansowanych funkcji, takich jak kopie zapasowe online, odzyskiwanie punktu w czasie, transakcje zagnieżdżone, zapytania SQL i JSON, kontrola współbieżności wielu wersji (MVCC), replikacja asynchroniczna i wiele innych.

W tym samouczku pokażemy, jak zainstalować PostgreSQL na Debian 9 i poznasz podstawy podstawowej administracji bazami danych.

Wymagania wstępne

Przed kontynuowaniem tego samouczka upewnij się, że zalogowany użytkownik ma uprawnienia sudo.

Instalowanie PostgreSQL

W chwili pisania tego artykułu najnowsza wersja PostgreSQL dostępna z repozytoriów Debiana to PostgreSQL w wersji 9.6.

Aby zainstalować PostgreSQL na serwerze Debian, wykonaj następujące kroki:

  1. Rozpocznij od aktualizacji indeksu lokalnego pakietu:

    sudo apt update

    Zainstaluj serwer PostgreSQL i pakiet contg PostgreSQL, który zapewnia dodatkowe funkcje dla bazy danych PostgreSQL:

    sudo apt install postgresql postgresql-contrib

    Po zakończeniu instalacji usługa PostgreSQL uruchomi się automatycznie. Aby zweryfikować instalację, połączymy się z serwerem bazy danych PostgreSQL za pomocą narzędzia psql i wydrukujemy wersję serwera:

    sudo -u postgres psql -c "SELECT version();"

    Dane wyjściowe będą wyglądać następująco:

    version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)

Psql to interaktywny program terminalowy, który pozwala na interakcję z serwerem PostgreSQL.

Role PostgreSQL i metody uwierzytelniania

PostgreSQL obsługuje uprawnienia dostępu do bazy danych przy użyciu koncepcji ról. Rola może reprezentować użytkownika bazy danych lub grupę użytkowników bazy danych.

PostgreSQL obsługuje wiele metod uwierzytelniania. Najczęściej stosowane metody to:

  • Zaufanie - Za pomocą tej metody rola może łączyć się bez hasła, o ile spełnione są kryteria zdefiniowane w pg_hba.conf pg_hba.conf. Hasło - Rola może się łączyć poprzez podanie hasła. Hasła mogą być przechowywane jako scram-sha-256 md5 i password (czysty tekst) Ident - Ta metoda jest obsługiwana tylko w połączeniach TCP / IP. Działa poprzez uzyskanie nazwy użytkownika systemu operacyjnego klienta, z opcjonalnym mapowaniem nazwy użytkownika. Peer - Taki sam jak Ident, ale jest obsługiwany tylko w połączeniach lokalnych.

Uwierzytelnianie klienta PostgreSQL jest zdefiniowane w pliku konfiguracyjnym o nazwie pg_hba.conf . Domyślnie w przypadku połączeń lokalnych PostgreSQL jest skonfigurowany do korzystania z metody uwierzytelniania równorzędnego.

Użytkownik postgres jest tworzony automatycznie podczas instalacji PostgreSQL. Ten użytkownik jest superużytkownikiem instancji PostgreSQL i jest równoważny z użytkownikiem root MySQL.

Aby zalogować się do serwera PostgreSQL jako użytkownik postgres, musisz najpierw przejść do użytkownika postgre, a następnie uzyskać dostęp do monitu PostgreSQL za pomocą narzędzia psql :

sudo su - postgres psql

Stąd możesz wchodzić w interakcje z instancją PostgreSQL. Aby wyjść z typu powłoki PostgreSQL:

\q

Możesz użyć polecenia sudo aby uzyskać dostęp do monitu PostgreSQL bez przełączania użytkowników:

sudo -u postgres psql

Użytkownik postgres jest zwykle używany tylko z lokalnego hosta i zaleca się, aby nie ustawiać hasła dla tego użytkownika.

Tworzenie roli i bazy danych PostgreSQL

Możesz tworzyć nowe role z wiersza poleceń za pomocą polecenia createuser . Tylko superużytkownicy i role z uprawnieniem CREATEROLE mogą tworzyć nowe role.

W poniższym przykładzie utworzymy nową rolę o nazwie john baza danych o nazwie johndb i johndb uprawnienia do bazy danych.

  1. Utwórz nową rolę PostgreSQL

    Następujące polecenie utworzy nową rolę o nazwie John:

    sudo su - postgres -c "createuser john"

    Utwórz nową bazę danych PostgreSQL

    Utwórz nową bazę danych o nazwie johndb za pomocą komendy createdb :

    sudo su - postgres -c "createdb johndb"

    Przyznaj uprawnienia

    Aby udzielić uprawnień john użytkownikowi bazy danych, którą utworzyliśmy w poprzednim kroku, połącz się z powłoką PostgreSQL:

    sudo -u postgres psql

    i uruchom następujące zapytanie:

    grant all privileges on database johndb to john;

Włącz zdalny dostęp do serwera PostgreSQL

Domyślnie serwer PostgreSQL nasłuchuje tylko na lokalnym interfejsie 127.0.0.1 . Aby umożliwić zdalny dostęp do serwera PostgreSQL, otwórz plik konfiguracyjny postgresql.conf i dodaj listen_addresses = '*' w sekcji CONNECTIONS AND AUTHENTICATION .

sudo vim /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

zapisz plik i zrestartuj usługę PostgreSQL za pomocą:

sudo service postgresql restart

Sprawdź zmiany za pomocą narzędzia ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Jak widać z danych wyjściowych powyżej, serwer PostgreSQL nasłuchuje na wszystkich interfejsach (0.0.0.0).

Ostatnim krokiem jest skonfigurowanie serwera do akceptowania połączeń zdalnych poprzez edycję pliku pg_hba.conf .

Poniżej znajduje się kilka przykładów pokazujących różne przypadki użycia:

/etc/postgresql/9.6/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

Wniosek

Nauczyłeś się, jak instalować i konfigurować PostgreSQL na serwerze Debian 9. Więcej informacji na ten temat można znaleźć w dokumentacji PostgreSQL.

baza danych debian postgresql