Tworzenie bazy
Tworzenie bazy danych
W instrukcji używamy przykładowych wartości, które należy zmienić na własne:
db_namedb_userTU_DAJ_MOCNE_HASLO
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
.envw katalogu/srv/docker/secrets/<nazwa_aplikacji>/ - Konta aplikacyjne tworzymy z minimalnymi wymaganymi uprawnieniami (dedykowana baza, brak uprawnień globalnych)
- Dane baz danych oraz pliki
.envpodlegają backupowi zgodnie z polityką serwera