Skip to content

Tworzenie bazy

Tworzenie bazy danych

W instrukcji używamy przykładowych wartości, które należy zmienić na własne:

  • db_name
  • db_user
  • TU_DAJ_MOCNE_HASLO

PostgreSQL MariaDB


Tworzenie bazy w PostgreSQL

Tworzymy dedykowanego użytkownika i bazę w PostgreSQL.

Uruchomienie psql w kontenerze

Uruchamiamy psql w kontenerze PostgreSQL:

docker exec -it postgres psql -U postgres

Tworzenie użytkownika i bazy

W psql tworzymy użytkownika i bazę:

CREATE USER db_user WITH PASSWORD 'TU_DAJ_MOCNE_HASLO';
CREATE DATABASE db_name OWNER db_user;
GRANT ALL PRIVILEGES ON DATABASE db_name TO db_user;

Tworzenie bazy dla istniejącego użytkownika

Jeśli użytkownik db_user już istnieje, tworzymy bazę i przypisujemy właściciela:

CREATE DATABASE db_name OWNER db_user;
GRANT ALL PRIVILEGES ON DATABASE db_name TO db_user;

Jeśli baza już istnieje i chcemy zmienić właściciela na istniejącego użytkownika:

ALTER DATABASE db_name OWNER TO db_user;

Wyjście z psql

Wychodzimy z psql:

\q

Tworzenie bazy w MariaDB

Tworzymy dedykowaną bazę oraz użytkownika w MariaDB.

Uruchomienie konsoli MariaDB w kontenerze

Uruchamiamy konsolę MariaDB w kontenerze (użytkownik root):

docker exec -it mariadb mariadb -u root -p

Tworzenie użytkownika i bazy

W MariaDB tworzymy użytkownika i bazę:

CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'db_user'@'%' IDENTIFIED BY 'TU_DAJ_MOCNE_HASLO';
GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'%';
FLUSH PRIVILEGES;

Tworzenie bazy dla istniejącego użytkownika

Jeśli użytkownik db_user już istnieje, tworzymy bazę i nadajemy uprawnienia:

CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'%';
FLUSH PRIVILEGES;

Jeśli baza db_name już istnieje i chcemy nadać uprawnienia istniejącemu użytkownikowi:

GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'%';
FLUSH PRIVILEGES;

Wyjście z konsoli MariaDB

Wychodzimy z konsoli:

EXIT;

Uwagi utrzymaniowe

  • Hasła i dane dostępowe przechowujemy w plikach .env w katalogu /srv/docker/secrets/<nazwa_aplikacji>/
  • Konta aplikacyjne tworzymy z minimalnymi wymaganymi uprawnieniami (dedykowana baza, brak uprawnień globalnych)
  • Dane baz danych oraz pliki .env podlegają backupowi zgodnie z polityką serwera