Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Xammp / MariaDB - zastąpienie użytkownika root
Forum PHP.pl > Forum > Bazy danych > MySQL
ReBeLs513
Przychodzę z następnym pytaniem.
Chcąc wyrzucić użytkownika root, stworzyłem innego o nazwie "example" i przyznałem mu wszystkie uprawnienia oraz ustawiłem hasło.
Wylogowałem się z root i zalogowałem na example. Wszystko OK, mogę dalej edytować konta uzytkowników, przeglądać bazę itd.
Ale, po usunięciu konta "root" i przeładowaniu strony nie mam dostępu do kont użytkowników.
Mam informację:
"Wybrany użytkownik nie został znaleziony w tabeli uprawnień." oraz " Za małe uprawnienia do przeglądania użytkowników.".
Dlaczego? Skoro użytkownik example ma WSZYSTKIE uprawnienia?
breadi
Po dodaniu uprawnień do użytkownika wydałeś komendę:
  1. FLUSH PRIVILEGES;

Lepiej byłoby zmienić nazwe 'root' na inną nazwę':
  1. RENAME USER 'root'@'localhost' TO 'nowanazwauzytkownika'@'localhost';

Aczkolwiek nie sprawdzałem zmiany nazwy roota, tylko innych użytkowników działało.
ReBeLs513
Zmieniłem nazwę użytkownika, wyskoczyło, że nie wybrano baz danych a potym znowu "za małe uprawnienia do przegladania użytkowników". Mimo, iż ma wszystkie opcje zaznaczone.
LowiczakPL
zaloguj się do mariaDB, wydaj polecenia:

Kod
CREATE USER 'devuser'@localhost IDENTIFIED BY 'pass';

// to polecenie daje userowi prawa do wszystkich baz na serwerze, tak nie powinno się robić ze względów bezpieczeństwa

GRANT ALL PRIVILEGES ON *.* TO 'devuser'@localhost IDENTIFIED BY 'pass';

// to polecenie daje userowi prawa tylko do konkretnej bazy (POLECAM)

GRANT ALL PRIVILEGES ON 'twojaNazwaBazy'.* TO 'devuser'@localhost;

// to polecenie odświeża uprawnienia

FLUSH PRIVILEGES;

// to polecenie pokazuje uprawnienia usera

SHOW GRANTS FOR 'devuser'@localhost;
ReBeLs513
Wykonałem polecenia. To musi być problem z bazą danych, Spróbuję zainstalować serwer na czystej maszynie a jak to nie pomoże to zamienić mariadb na mysql. Ta baza danych, nie dość, że się wysypuje po zatrzymaniu usługi (ruletka, za którym razem) to jeszcze po wykonaniu
  1. GRANT ALL PRIVILEGES ON *.* TO 'devuser'@localhost IDENTIFIED BY 'pass';
mówi, że nie wybrano żadnej bazy danych. A zmieniając uprawnienia root'a, widzę tą samą komendę.
viking
Tylko podstawowe pytanie po co chcesz zmieniać użytkownika? Tak jak ktoś wspomniał lepiej użyć RENAME. A też nie spotkałem się żeby ktoś usuwał roota i nawet nie wiem czy mysql pozwala na to. Nawet w dokumentacji nie mogę nic o tym znaleźć.
LowiczakPL
Jeśli masz komunikat że nie wybrano żadnej bazy to ją wybierz a następnie dodaj uprawnienia, bazę wybiera się komendą

Kod
USE nazwa_bazy

breadi
Ja również nie polecam zmiany/usuwania root.
Mogą być potem komplikacaje.
Lepiej dodaż użytkownika do danej bazy z osobna, a dla konta root ustawić bardzo silen hasło, minimu 20 znaków kombinacyjnych/
Do danej bazy możesz też przypisać użytkownika który będzie wykonywał tylko odpytania a nie będzie mógł dokonać żadnych zmian w danej bazie/
LowiczakPL
Proponuję wyłączyć logowanie na roota z poza lokalnej maszyny.

  1. DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
  2. FLUSH PRIVILEGES;
ReBeLs513
Cytat(viking @ 2.03.2021, 19:03:41 ) *
Tylko podstawowe pytanie po co chcesz zmieniać użytkownika? Tak jak ktoś wspomniał lepiej użyć RENAME.

Z prostego powodu - zwiększyć nieco bezpieczeństwo bazy danych przez zmianę nazwy i dodanie hasła.
rename działa ale wywala mi błąd, o którym napisałem. I nie ważne czy zaznaczę wszystkie uprawnienia i wszystkie bazy danych. Brak użytkownika w tabeli uprawnień i koniec.

Cytat(LowiczakPL @ 4.03.2021, 08:19:48 ) *
Proponuję wyłączyć logowanie na roota z poza lokalnej maszyny.

  1. DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
  2. FLUSH PRIVILEGES;

OO i tyle mi wystarczy. To teraz roota mogę zostawić. Dzięki.
viking
Po to masz opcję w my.cnf skip-networking + ewentualnie odpowiednie reguły na firewall. Tak myślałem że chcesz przekombinować.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.