15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
31.10.2024
1 +1

Jak zarządzać bazami danych w PostgreSQL: Kompletny przewodnik dla użytkowników Linux VPS

PostgreSQL (powszechnie zwany Postgres) to jeden z najpotężniejszych, bogatych w funkcje, open-source’owych systemów zarządzania relacyjnymi bazami danych dostępnych dzisiaj. Zaufany przez startupy i zespoły enterprise, doskonale radzi sobie ze złożonymi zapytaniami, dużymi zbiorami danych i skalowalnymi architekturami aplikacji. Niezależnie od tego, czy budujesz platformę SaaS, sklep e-commerce czy backend API intensywnie korzystający z danych, PostgreSQL zapewnia niezawodność i wydajność, których wymaga Twój projekt.

Uruchamianie PostgreSQL w środowisku wysokowydajnego VPS Hosting — z magazynem NVMe SSD, pełnym dostępem root i wbudowaną ochroną DDoS — daje Ci pełną kontrolę nad infrastrukturą bazy danych bez obciążenia zarządzanych rozwiązań chmurowych. Ten przewodnik przeprowadzi Cię przez każde istotne zadanie zarządzania PostgreSQL, od początkowego dostępu i tworzenia bazy danych po uprawnienia użytkowników, kopie zapasowe i wzmacnianie bezpieczeństwa.

Wymagania wstępne

Przed przystąpieniem upewnij się, że masz:

  • Linux VPS z systemem Ubuntu, Debian lub CentOS z zainstalowanym PostgreSQL
  • Dostęp root lub sudo do serwera
  • Podstawową znajomość wiersza poleceń Linux

Jeśli nie skonfigurowałeś jeszcze środowiska serwera, Panele kontrolne VPS AlexHost ułatwiają szybkie skonfigurowanie stosu.

1. Dostęp do interfejsu wiersza poleceń PostgreSQL

Wszystkie zadania zarządzania PostgreSQL zaczynają się w interfejsie wiersza poleceń (CLI), znanym również jako psql. Domyślnie PostgreSQL tworzy użytkownika systemu o nazwie postgres podczas instalacji, a to konto jest używane do uwierzytelniania się z silnikiem bazy danych.

Krok 1: Przełącz się na użytkownika systemu PostgreSQL

sudo -i -u postgres

Krok 2: Uruchom CLI PostgreSQL

psql

Po połączeniu zobaczysz interaktywny monit:

postgres=#

To potwierdza, że jesteś wewnątrz środowiska PostgreSQL i gotowy do wykonywania poleceń SQL i meta-poleceń.

> Porada Pro: Możesz również połączyć się bezpośrednio bez przełączania użytkowników, uruchamiając sudo -u postgres psql z regularnej sesji powłoki.

2. Tworzenie nowej bazy danych

Bazy danych to kontenery najwyższego poziomu dla wszystkich tabel, indeksów i przechowywanych danych. Użyj instrukcji CREATE DATABASE do aprowizacji nowej bazy danych.

Składnia

CREATE DATABASE database_name;

Przykład

CREATE DATABASE my_database;

To tworzy bazę danych o nazwie my_database będącą własnością aktualnie aktywnej roli PostgreSQL.

Weryfikuj, czy baza danych została utworzona

Użyj meta-polecenia l aby wyświetlić listę wszystkich baz danych na serwerze:

l

Zobaczysz tabelę pokazującą nazwy baz danych, właścicieli, kodowania i uprawnienia dostępu.

3. Tworzenie i zarządzanie użytkownikami bazy danych

Prawidłowe zarządzanie użytkownikami jest krytyczne dla bezpieczeństwa bazy danych. Zamiast przyznawać wszystkim aplikacjom dostęp pod kontem superużytkownika postgres, powinieneś tworzyć dedykowanych użytkowników z ograniczonymi uprawnieniami.

Utwórz nowego użytkownika

CREATE USER username WITH PASSWORD 'your_secure_password';

Przykład

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Przyznaj pełny dostęp do określonej bazy danych

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Przykład

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

To przyznaje dbuser pełny dostęp do odczytu i zapisu do my_database, w tym możliwość tworzenia i usuwania tabel.

Wyświetl listę wszystkich użytkowników

Aby wyświetlić wszystkie istniejące role i użytkowników:

du

4. Łączenie się z bazą danych

Gdy baza danych istnieje, musisz się z nią połączyć, zanim będziesz mógł tworzyć tabele lub uruchamiać zapytania.

Przełącz się na bazę danych

c my_database

Monit zostanie zaktualizowany, aby odzwierciedlić aktywną bazę danych:

my_database=#

Teraz pracujesz w ramach my_database i możesz wykonywać wszystkie instrukcje DDL i DML.

5. Tworzenie i zarządzanie tabelami

Tabele to podstawowa jednostka strukturalna każdej relacyjnej bazy danych. Każda tabela definiuje schemat — zestaw nazwanych kolumn o określonych typach danych i ograniczeniach.

Utwórz tabelę

CREATE TABLE table_name (
    column1 data_type PRIMARY KEY,
    column2 data_type,
    column3 data_type
);

Praktyczny przykład: tabela rekordów pracowników

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    department  VARCHAR(50),
    salary      NUMERIC(10, 2)
);

Tutaj SERIAL automatycznie inkrementuje employee_id w każdym nowym wierszu, a NOT NULL wymusza, aby każdy pracownik miał imię.

6. Wstawianie, wyszukiwanie, aktualizowanie i usuwanie danych

Wstaw rekord

INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);

Wyszukaj wszystkie rekordy

SELECT * FROM employees;

Filtruj wyniki za pomocą klauzuli WHERE

SELECT name, salary FROM employees WHERE department = 'Engineering';

Zaktualizuj istniejący rekord

UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';

Usuń określony rekord

DELETE FROM employees
WHERE name = 'Jane Smith';

> Najlepsza praktyka: Zawsze używaj klauzuli WHERE z instrukcjami UPDATE i DELETE. Pominięcie jej wpłynie na każdy wiersz w tabeli.

7. Zarządzanie dostępem do bazy danych i bezpieczeństwem

Bezpieczeństwo jest pierwszorzędnym problemem w każdym wdrożeniu PostgreSQL w produkcji. Zasada najmniejszych uprawnień — przyznawanie użytkownikom tylko uprawnień, które faktycznie potrzebują — drastycznie zmniejsza powierzchnię ataku.

Odwołaj wszystkie uprawnienia od użytkownika

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Przyznaj dostęp tylko do odczytu do określonej tabeli

GRANT SELECT ON TABLE employees TO dbuser;

To pozwala dbuser na wyszukiwanie tabeli employees, ale uniemożliwia jakiekolwiek wstawienia, aktualizacje lub usunięcia.

Przyznaj określone uprawnienia DML

GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;

Dodatkowe rekomendacje bezpieczeństwa

  • Używaj silnych, unikalnych haseł dla każdego użytkownika bazy danych
  • Wyłącz dostęp zdalny dla superużytkownika postgres w pg_hba.conf
  • Włącz połączenia SSL aby szyfrować dane w tranzycie — połącz to z zaufanym Certyfikatem SSL na serwerze
  • Regularnie audytuj uprawnienia użytkowników używając du i dp
  • Utrzymuj PostgreSQL zaktualizowany aby załatać znane luki w zabezpieczeniach

8. Tworzenie kopii zapasowych i przywracanie baz danych

Regularne kopie zapasowe są niezbędne dla każdej produkcyjnej bazy danych. PostgreSQL udostępnia narzędzia pg_dump i psql do prostych przepływów pracy tworzenia kopii zapasowych i przywracania.

Utwórz kopię zapasową bazy danych do pliku SQL

pg_dump my_database > my_database_backup.sql

To eksportuje cały schemat bazy danych i dane jako zwykły skrypt SQL.

Utwórz kopię zapasową w formacie skompresowanym (zalecane dla dużych baz danych)

pg_dump -Fc my_database > my_database_backup.dump

Format niestandardowy (-Fc) tworzy skompresowany plik binarny i obsługuje przywracanie równoległe.

Przywróć bazę danych z kopii zapasowej SQL

psql my_database < my_database_backup.sql

Przywróć z kopii zapasowej w formacie niestandardowym

pg_restore -d my_database my_database_backup.dump

Zautomatyzuj kopie zapasowe za pomocą zadania Cron

Zaplanuj codzienne kopie zapasowe, dodając wpis cron:

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

To uruchamia kopię zapasową każdego dnia o 2:00 AM i dołącza datę do nazwy pliku dla łatwego wersjonowania.

9. Usuwanie tabel i baz danych

Gdy tabela lub baza danych nie jest już potrzebna, użyj polecenia DROP aby ją trwale usunąć.

Usuń tabelę

DROP TABLE table_name;

Przykład

DROP TABLE employees;

Usuń tabelę tylko jeśli istnieje (bezpieczniejsza składnia)

DROP TABLE IF EXISTS employees;

Usuń bazę danych

Musisz się rozłączyć z docelową bazą danych przed jej usunięciem. Najpierw przełącz się na domyślną bazę danych postgres:

c postgres

Następnie usuń cel:

DROP DATABASE my_database;

> Ostrzeżenie: DROP DATABASE jest nieodwracalny. Zawsze weryfikuj, że masz aktualną kopię zapasową przed wykonaniem tego polecenia w produkcji.

10. Przydatne meta-polecenia PostgreSQL — Referencja

CLI psql zawiera bogaty zestaw meta-poleceń (poprzedzonych ), które upraszczają nawigację i inspekcję:

PolecenieOpis
lWyświetl listę wszystkich baz danych
c dbnamePołącz się z bazą danych
dtWyświetl listę wszystkich tabel w bieżącej bazie danych
d table_nameOpisz schemat tabeli
15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij