• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

MySQL i phpMyAdmin do nauki dla 20 userów

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
194 wizyt
pytanie zadane 5 maja w Hostingi, domeny, usługi przez Rolandes Nowicjusz (140 p.)
Cześć,

stawiam prosty serwer dla mojej grupy do nauki baz danych i programowania aplikacji webowych. Taki prosty hosting. Chcę by każdy user mógł tworzyć i dowolnie manipulować swoimi bazami danych, ale bez dostępu do baz innych userów. Wiem, że można uruchomić wiele instancji MySQLa, ale nie wiem na ile to jest bezpieczne. Czy w takim przypadku będzie konieczne też uruchomienie wielu instancji phpMyAdmina, czy wystarczy jedna?

Czy w takim układzie nie lepiej uruchomić MySQLa w dockerze (może wraz z phpmyadmin)?

Nie mam w tym doświadczenia, a od przeglądania różnych rozwiązań już dostaję oczopląsów i nie potrafię zdecydować, bo też nie wiem ile pracy, które rozwiązanie będzie kosztowało i przy jakiej skali, które stosować.

1 odpowiedź

0 głosów
odpowiedź 5 maja przez Wiciorny Ekspert (278,610 p.)

Generalnie nie wiem jaką wiedzę chcesz przekazywać i czy "jesteś do tego odpowiednią osobą, po tym co przeczytałem", ale dlaczego nie możesz wystawić po prostu tylko 1 instancji MySQL, a potem po prostu prostym mechanizmem skonfigurować uprawnienia dla  użytkowników w taki sposób, aby każdy miał dostęp tylko do swojej bazy danych.?

Jest coś takiego jak MySQL Access Control https://dev.mysql.com/doc/refman/8.0/en/access-control.html

W phpMyAdmin to samo, jedna instancja i zarządzasz uprawnieniami - ograniczenia nakładasz do odpowiedniej bazy.

natomiast co do :  

Czy w takim układzie nie lepiej uruchomić MySQLa w dockerze (może wraz z phpmyadmin)?

 Kwestia podejścia- możesz spokojnie uruchomić instancje w dokerze, oraz pHpMyAdmin również w dokerze, szczególnie jeśli chcesz mieć większą izolację pomiędzy różnymi środowiskami bazy danych dla różnych użytkowników.
W ten sposób każdy użytkownik będzie miał dostęp do swojej instancji MySQL poprzez phpMyAdmina, wymaga to jednak do Ciebie niestety konfiguracji zabezpieczeń. 
Zasadniczo nie jest Ci potrzebny obraz dokera, możesz korzystać już z istniejącego, bo ożesz uruchomić wiele kontenerów na podstawie tego samego obrazu MySQL tylko każdy musi mieć inne nazwy oraz inne porty, hasła etc.

Utworzenie różnych portów zapewni Ci działanie równolege, poprzez mapowanie portów podczas uruchamiania kontenerów.

Najlepiej to zrobić z pomocą prostego skryptu 

#!/bin/bash

docker run --name mysql_instance1 -e MYSQL_ROOT_PASSWORD=haslo1 -d -p 3306:3306 mysql:latest
docker run --name mysql_instance2 -e MYSQL_ROOT_PASSWORD=haslo2 -d -p 3307:3306 mysql:latest
docker run --name mysql_instance3 -e MYSQL_ROOT_PASSWORD=haslo3 -d -p 3308:3306 mysql:latest

natomiast teraz mowa o powiązaniu np. pHpMyAdmin z dokerem, no to możesz to zrobić tworząc pewną sieć i linkując 

Przykład np. utworzenia sieci, najpierw utwórz sieć DOKERA, potem ustaw połączenie phpMyAdmina z instancjami MySQL
Uruchom skrypt w sieci dokera; 
 

docker run --name mysql_instance1 -e MYSQL_ROOT_PASSWORD=haslo1 -d -p 3306:3306 --network my_network mysql:latest

i teraz admin do tej samej sieci 
 

docker run --name my_phpmyadmin1 -d -p 8080:80 --network my_network phpmyadmin/phpmyadmin

Nic nie stoi na przeszkodzie zrobić to dla każdej instancji i uztykowników, pamietaj o tym, że w tym wypadku musisz PODLINKOWAĆ daną instancje, do konkretnego pHpMyAdmin 

 

# Instancja MySQL dla użytkownika 1
docker run --name mysql_instance1 -e MYSQL_ROOT_PASSWORD=haslo1 -d --network my_network mysql:latest

# phpMyAdmin dla użytkownika 1
docker run --name my_phpmyadmin1 -d -p 8081:80 --network my_network --link mysql_instance1:db phpmyadmin/phpmyadmin

Tak użytkownicy mogą korzystać z różnych instancji oraz różnych instancji admina niezaleznie. 

1
komentarz 5 maja przez Rolandes Nowicjusz (140 p.)
No tak, pewnie, że nie jestem. Nie napisałem o tym, ale to nie ja będę ich uczył, to ja uczę się z nimi. Jestem po inf.02 i ten serwer, to mój pierwszy realny projekt, na którym zdobywam doświadczenie i staram się wykorzystać trochę to, czego nauczyłem się na inf.02 oraz własnym sumptem.

Chcę odizolować userów, ponieważ każdy będzie wykonywał te same zadania i tworzył te takie same bazy. Stąd pomysł na osobne instancje i Dockera.

Dzięki za konkretną odpowiedź. Spróbuję to wdrożyć i odezwę się.
komentarz 5 maja przez Wiciorny Ekspert (278,610 p.)
daj znać jak Ci poszło, w razie pytań pomogę dalej.
komentarz 5 maja przez AnimaVillis Stary wyjadacz (12,630 p.)

@Rolandes, ogólnie prościej w zależności od zasobów serwera możesz utworzyć jedną instancję MySQL i phpmyadmina a jedynie dodawać osobnych użytkowników.

Nie ma potrzeby Tworzenia 20 takich samych instancji dla każdego usera z osobna.

komentarz 5 maja przez Rolandes Nowicjusz (140 p.)
Prościej, ale czy wtedy każdy z nich nie będzie widział baz innych? I czy każdy będzie mógł utworzyć i zaimportować tę samą bazę x?
komentarz 5 maja przez AnimaVillis Stary wyjadacz (12,630 p.)
Tak, użytkownicy są odseparowani.

Kwestia nadania odpowiednich uprawnień, najszybciej Ci będzie utworzyć instancje MySQL a następnie phpmyadmin i klikać w panelu użytkowników do konkretnej bazy danych.

Jeżeli nie to jakiś skrypt w pythonie/bashu, który doda Ci 20 użytkowników z losowymi hasłami itp.
komentarz 5 maja przez Wiciorny Ekspert (278,610 p.)
dokładnie to wspomniałem na samym początku, to może być kwestia jedynie uprawnień, a także tego, żeby nadać uprawnienia dla 1 użtykownika np. tylko dośtep do okreslonej 1 bazy, i tutaj nawet możesz określić poziomy dostępu: WRITE/READ/MODIFY...

Podobne pytania

0 głosów
1 odpowiedź 129 wizyt
pytanie zadane 23 października w Hostingi, domeny, usługi przez Rolandes Nowicjusz (140 p.)
0 głosów
1 odpowiedź 2,016 wizyt
0 głosów
1 odpowiedź 1,013 wizyt

93,174 zapytań

142,185 odpowiedzi

321,968 komentarzy

62,503 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1157p. - dia-Chann
  2. 1139p. - Łukasz Piwowar
  3. 1131p. - CC PL
  4. 1126p. - Łukasz Eckert
  5. 1118p. - Tomasz Bielak
  6. 1104p. - Michal Drewniak
  7. 1083p. - Marcin Putra
  8. 1078p. - rucin93
  9. 1071p. - rafalszastok
  10. 1054p. - Adrian Wieprzkowicz
  11. 1047p. - Piotr Aleksandrowicz
  12. 1037p. - Michał Telesz
  13. 1023p. - Mariusz Fornal
  14. 1017p. - Mikbac
  15. 1005p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...