Πώς να εγκαταστήσετε τη βάση δεδομένων PostgreSQL στο Debian 10


Το PostgreSQL (μερικές φορές αναφέρεται ως Postgres) είναι το πιο προηγμένο σύστημα βάσης δεδομένων γενικού σκοπού και αντικειμενικής σχέσης ανοιχτού κώδικα με αποδεδειγμένη αρχιτεκτονική που εκτελείται σε όλα τα μεγάλα λειτουργικά συστήματα. Είναι ένα υψηλής απόδοσης, σταθερό, επεκτάσιμο και επεκτάσιμο σύστημα βάσης δεδομένων που παρέχει εκπληκτική ακεραιότητα δεδομένων και υποστηρίζει ισχυρά πρόσθετα.

Είναι σημαντικό ότι το PostgreSQL σάς επιτρέπει να ορίζετε τους δικούς σας τύπους δεδομένων, να προσθέτετε προσαρμοσμένες συναρτήσεις, ακόμη και να γράφετε κώδικα από διαφορετικές γλώσσες προγραμματισμού όπως C/C++, Java κ.λπ., χωρίς να κάνετε εκ νέου μεταγλώττιση της βάσης δεδομένων σας.

Το PostgreSQL χρησιμοποιείται από γνωστές εταιρείες τεχνολογίας όπως η Apple, η Fujitsu, η Red Hat, η Cisco, η Juniper Network κ.λπ.

Σε αυτό το άρθρο, θα σας δείξουμε πώς να εγκαταστήσετε, να ασφαλίσετε και να ρυθμίσετε τον διακομιστή βάσεων δεδομένων PostgreSQL στο Debian 10.

Απαίτηση:

  1. Εγκαταστήστε έναν ελάχιστο διακομιστή Debian 10 (Buster)

Εγκατάσταση του PostgreSQL Server στο Debian 10

Για να εγκαταστήσετε τον διακομιστή βάσης δεδομένων PostgreSQL, χρησιμοποιήστε τον προεπιλεγμένο διαχειριστή πακέτων APT, ο οποίος θα εγκαταστήσει τον διακομιστή και τον πελάτη PostgreSQL 11.

# apt install postgresql-11 postgresql-client-11

Στο Debian, όπως και κάθε άλλος δαίμονας, η βάση δεδομένων Postgres προετοιμάζεται αμέσως μετά την ολοκλήρωση της εγκατάστασης του πακέτου, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Για να ελέγξετε εάν η βάση δεδομένων Postgres είναι πραγματικά αρχικοποιημένη, μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα pg_isready που ελέγχει την κατάσταση σύνδεσης ενός διακομιστή PostgreSQL, ως εξής.

# pg_isready 

Επιπλέον, στην ενότητα systemd, η υπηρεσία Postgres ξεκινά επίσης αυτόματα και ενεργοποιείται για εκκίνηση κατά την εκκίνηση του συστήματος. Για να βεβαιωθείτε ότι η υπηρεσία λειτουργεί και λειτουργεί σωστά, εκτελέστε την ακόλουθη εντολή.

# systemctl status postgresql

Ακολουθούν άλλες χρήσιμες εντολές systemctl για τη διαχείριση της υπηρεσίας Postgres στο systemd.

# systemctl start postgresql
# systemctl restart postgresql
# systemctl stop postgresql
# systemctl reload postgresql 		#this reloads the service configuration

Ασφάλεια και διαμόρφωση βάσης δεδομένων PostgreSQL

Από προεπιλογή, το Postgres χρησιμοποιεί την έννοια των ρόλων για τη διαχείριση των δικαιωμάτων πρόσβασης στη βάση δεδομένων και οι ρόλοι της βάσης δεδομένων είναι εννοιολογικά εντελώς ξεχωριστοί από τους χρήστες του λειτουργικού συστήματος. Ένας ρόλος μπορεί να είναι χρήστης ή ομάδα και ένας ρόλος που έχει δικαίωμα σύνδεσης ονομάζεται χρήστης.

Ένα πρόσφατα αρχικοποιημένο σύστημα περιέχει πάντα έναν προκαθορισμένο ρόλο που ονομάζεται postgres, έχει το ίδιο όνομα με τον λογαριασμό χρήστη του λειτουργικού συστήματος που ονομάζεται postgres, ο οποίος χρησιμοποιείται για πρόσβαση στο psql (Postgres shell) και άλλα προγράμματα βάσης δεδομένων.

Ο λογαριασμός χρήστη του συστήματος Postgres δεν προστατεύεται με χρήση κωδικού πρόσβασης. Για να τον ασφαλίσετε, μπορείτε να δημιουργήσετε έναν κωδικό πρόσβασης χρησιμοποιώντας το βοηθητικό πρόγραμμα passwd.

# passwd postgres

Επίσης, ο ρόλος Postgres (ή διαχειριστής της βάσης δεδομένων, αν θέλετε) δεν είναι ασφαλής από προεπιλογή. Πρέπει επίσης να το ασφαλίσετε με κωδικό πρόσβασης. Τώρα μεταβείτε στον λογαριασμό χρήστη συστήματος postgres και στον ρόλο postgres (θυμηθείτε να ορίσετε έναν ισχυρό και ασφαλή κωδικό πρόσβασης) όπως φαίνεται.

# su - postgres
# psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

Στη συνέχεια, βγείτε από τον λογαριασμό postgres για να συνεχίσετε με τον οδηγό.

Διαμόρφωση ελέγχου ταυτότητας πελάτη

Το κύριο αρχείο διαμόρφωσης Postgres βρίσκεται στη διεύθυνση /etc/postgresql/11/main/postgresql.conf. Εκτός από αυτό το αρχείο, το Postgres χρησιμοποιεί δύο άλλα μη αυτόματα επεξεργασμένα αρχεία διαμόρφωσης, τα οποία ελέγχουν τον έλεγχο ταυτότητας πελάτη.

Ο έλεγχος ταυτότητας πελάτη ελέγχεται από το αρχείο διαμόρφωσης /etc/postgresql/11/main/pg_hba.conf. Η Postgres παρέχει πολλές διαφορετικές μεθόδους ελέγχου ταυτότητας πελάτη, συμπεριλαμβανομένου του ελέγχου ταυτότητας βάσει κωδικού πρόσβασης. Οι συνδέσεις πελατών ελέγχονται βάσει της διεύθυνσης κεντρικού υπολογιστή πελάτη, της βάσης δεδομένων και του χρήστη.

Εάν επιλέξετε να χρησιμοποιήσετε έλεγχος ταυτότητας βάσει κωδικού πρόσβασης, μπορείτε να εφαρμόσετε μία από αυτές τις μεθόδους: md5 ή κωδικός πρόσβασης που λειτουργούν με παρόμοιο τρόπο εκτός από τον τρόπο μετάδοσης του κωδικού πρόσβασης μέσω της σύνδεσης , δηλαδή MD5-hashed και clear-text αντίστοιχα.

Η χρήση του επαλήθευσης κωδικού πρόσβασης md5 αποτρέπει την ανίχνευση κωδικού πρόσβασης από χάκερ και αποφεύγει την αποθήκευση κωδικών πρόσβασης στον διακομιστή σε απλό κείμενο. Η μέθοδος κωδικού πρόσβασης μπορεί να χρησιμοποιηθεί με ασφάλεια μόνο εάν η σύνδεση προστατεύεται από κρυπτογράφηση SSL.

Για αυτόν τον οδηγό, θα δείξουμε πώς να ρυθμίσετε τον έλεγχος κωδικού πρόσβασης md5 για έλεγχο ταυτότητας πελάτη.

# vim /etc/postgresql/11/main/pg_hba.conf 

Αναζητήστε την ακόλουθη γραμμή και αλλάξτε τη μέθοδο ελέγχου ταυτότητας σε md5 όπως φαίνεται στο στιγμιότυπο οθόνης.

local   all             all                                     md5

Αποθηκεύστε τις αλλαγές στο αρχείο και βγείτε από αυτό. Στη συνέχεια, εφαρμόστε τις πρόσφατες αλλαγές επανεκκινώντας την υπηρεσία Postgres ως εξής.

# systemctl restart postgresql

Δημιουργία νέου ρόλου/χρήστη βάσης δεδομένων και βάσης δεδομένων στο PostgreSQL

Σε αυτήν την τελευταία ενότητα, θα δείξουμε πώς να δημιουργήσετε έναν νέο χρήστη βάσης δεδομένων και έναν ρόλο βάσης δεδομένων για τη διαχείρισή του. Πρώτα, μεταβείτε στον λογαριασμό postgres και ανοίξτε το κέλυφος Postgres ως εξής.

# su - postgres
$ psql

Για να δημιουργήσετε μια βάση δεδομένων που ονομάζεται \test_db εκτελέστε την ακόλουθη εντολή SQL.

postgres=# CREATE DATABASE test_db;

Στη συνέχεια, δημιουργήστε έναν χρήστη βάσης δεδομένων (έναν ρόλο με δικαιώματα σύνδεσης) ο οποίος θα διαχειρίζεται τη νέα βάση δεδομένων ως εξής.

postgres=#CREATE USER test_user PASSWORD ‘_here’;     #assumes login function by default

Για να συνδεθείτε στο test_db ως χρήστης test_user, εκτελέστε την ακόλουθη εντολή.

 
$ psql -d  test_db  -U test_user

Για περισσότερες πληροφορίες, ανατρέξτε στην τεκμηρίωση PostgreSQL 11.

συμπέρασμα

Αυτό είναι για τώρα! Σε αυτόν τον οδηγό, δείξαμε πώς να εγκαταστήσετε, να ασφαλίσετε και να ρυθμίσετε τον διακομιστή βάσεων δεδομένων PostgreSQL στο Debian 10. Έχετε κάποια ερώτηση ή σκέψη να μοιραστείτε; Χρησιμοποιήστε την παρακάτω φόρμα σχολίων για να επικοινωνήσετε μαζί μας.