Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator uprawnień MySQL

CREATE USER i minimalny GRANT dla jednej bazy danych

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Wynik zawiera placeholder hasła do lokalnej zamiany. Narzędzie nie przyjmuje prawdziwych sekretów. Host % oznacza każdy adres.

Uzupełnij dane i kliknij „Generuj SQL”.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator GRANT MySQL z zasadą minimalnych uprawnień

Generator przygotowuje polecenia CREATE USER i GRANT dla jednego konta, hosta oraz jednej bazy MySQL. Domyślnie zaznaczone jest wyłącznie SELECT, ponieważ każde dodatkowe prawo powinno wynikać z konkretnej potrzeby aplikacji. Nazwa bazy jest cytowana jako identyfikator, a użytkownik, host i hasło jako literały SQL.

Oddzielne konto aplikacyjne ogranicza skutki wycieku danych dostępowych. Zamiast łączyć usługę jako root, można przyznać jej dostęp tylko do wymaganej bazy i operacji. Konfigurację serwera WWW przygotujesz w generatorze .htaccess, usługi kontenerowe opiszesz w generatorze Docker Compose, a zadania administracyjne zaplanujesz przez generator crontab.

Identyfikatory i literały to różne elementy SQL

Nazwa bazy w klauzuli ON jest identyfikatorem i otrzymuje backticki: `app_db`.*. Nazwa konta MySQL składa się z dwóch literałów: 'app_user'@'localhost'. Generator nie przyjmuje prawdziwego hasła: zawsze emituje stały placeholder cytowany jako literał SQL. Użytkownik, host i baza przechodzą ścisłą walidację przed cytowaniem, a znaki sterujące i fragmenty składni są odrzucane.

CREATE USER 'app_user'@'localhost'
  IDENTIFIED BY 'CHANGE_ME_STRONG_PASSWORD';
GRANT SELECT ON `app_db`.* TO 'app_user'@'localhost';

Nazwy użytkownika i bazy mają celowo konserwatywny format: litery ASCII, cyfry i podkreślenia. Ograniczenie zmniejsza ryzyko pomyłek między identyfikatorem a fragmentem zapytania. Nie należy usuwać cytowania tylko dlatego, że aktualna nazwa nie zawiera znaków specjalnych.

Minimalne uprawnienia zamiast ALL PRIVILEGES

SELECT wystarcza procesowi raportowemu i jest bezpiecznym ustawieniem startowym. Aplikacja CRUD może dodatkowo potrzebować INSERT, UPDATE i DELETE. Prawa CREATE, DROP, ALTER oraz INDEX powinny należeć raczej do osobnego konta migracyjnego. REFERENCES dotyczy ograniczeń kluczy obcych, a EXECUTE procedur składowanych. Generator nie oferuje ALL PRIVILEGES, aby wybór był jawny.

UprawnienieTypowy celRyzyko
SELECTOdczyt danych i raportyUjawnienie danych dostępnych w bazie
INSERT, UPDATE, DELETEOperacje aplikacjiZmiana lub usunięcie rekordów
CREATE, ALTER, INDEXMigracje schematuZmiana struktury i wydajności
DROPUsuwanie obiektówNieodwracalna utrata tabel
EXECUTEProcedury składowaneDziałanie zależne od definicji procedury

Host konta MySQL

W MySQL 'app_user'@'localhost' i 'app_user'@'%' są różnymi kontami. localhost ogranicza połączenia do serwera bazy, konkretny adres IP lub nazwa DNS ogranicza źródło sieciowe, a % dopuszcza każdy host. Generator akceptuje samotny znak % jako świadomą decyzję, lecz odrzuca wzorce mieszane, spacje i fragmenty SQL. W środowisku produkcyjnym wybierz najbardziej precyzyjny host i dodatkowo ogranicz ruch firewallem.

Uwaga o haśle: narzędzie celowo nie ma pola na prawdziwy sekret. Wynik zawsze zawiera placeholder CHANGE_ME_STRONG_PASSWORD, który należy zastąpić lokalnie przed wykonaniem, poza przeglądarką i warstwą Livewire.

Dlaczego nie ma WITH GRANT OPTION i FLUSH PRIVILEGES

WITH GRANT OPTION pozwala utworzonemu kontu przekazywać innym użytkownikom własne uprawnienia. Zwykłe konto aplikacji nie powinno mieć takiej możliwości, dlatego generator nigdy nie dopisuje tej klauzuli. Po poleceniach zarządzania kontami i grantami wykonywanych przez serwer MySQL nie jest też potrzebne FLUSH PRIVILEGES; instrukcja byłaby zbędna i może wymagać dodatkowego globalnego prawa administracyjnego.

Generator używa CREATE USER bez IF NOT EXISTS. Jeśli konto już istnieje, serwer zgłosi błąd zamiast sprawiać wrażenie, że podane hasło zostało ustawione. Dla istniejącego użytkownika świadomie użyj odpowiedniego ALTER USER, a aktualne prawa sprawdź przez SHOW GRANTS.

Bezpieczna procedura użycia

  1. Utwórz osobne konto dla jednej aplikacji lub procesu i wskaż najwęższy możliwy host.
  2. Wybierz jedną bazę oraz tylko te operacje, które wynikają z rzeczywistych zapytań aplikacji.
  3. Wygeneruj instrukcje i dopiero w lokalnym, chronionym pliku zamień placeholder na silny sekret.
  4. Przejrzyj wynik jako administrator, wykonaj go w kontrolowanej sesji i usuń sekret z historii powłoki.
  5. Potwierdź wynik przez SHOW GRANTS FOR 'user'@'host' oraz test połączenia kontem aplikacji.

Najczęstsze pytania

Czy host % jest bezpieczny?

Oznacza każdy adres źródłowy, więc zwykle jest zbyt szeroki. Używaj go tylko świadomie, z ograniczeniami sieciowymi i silnym uwierzytelnianiem.

Dlaczego domyślnie zaznaczony jest tylko SELECT?

To najwęższy użyteczny wariant dla odczytu. Uprawnienia modyfikujące dane lub schemat trzeba dodać dopiero po potwierdzeniu wymagań aplikacji.

Czy generator może zmienić hasło istniejącego konta?

Nie. CREATE USER celowo zgłosi konflikt. Do kontrolowanej zmiany istniejącego konta użyj ALTER USER bezpośrednio w bezpiecznej sesji administracyjnej.

Po co cytować prostą nazwę app_db?

Cytowanie jednoznacznie oznacza identyfikator i zapobiega kolizjom ze słowami kluczowymi. Walidacja oraz quoting pełnią różne, uzupełniające się role.

Jak później odebrać uprawnienie?

Użyj REVOKE dla dokładnego konta i zakresu, a następnie sprawdź rezultat przez SHOW GRANTS. Nie trzeba wykonywać FLUSH PRIVILEGES.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!