Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Xammp / MariaDB - zastąpienie użytkownika root

Napisany przez: ReBeLs513 27.02.2021, 15:26:02

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?

Napisany przez: breadi 28.02.2021, 13:16:21

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.

Napisany przez: ReBeLs513 1.03.2021, 20:56:02

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.

Napisany przez: LowiczakPL 2.03.2021, 14:12:49

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;

Napisany przez: ReBeLs513 2.03.2021, 16:40:09

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ę.

Napisany przez: viking 2.03.2021, 19:03:41

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źć.

Napisany przez: LowiczakPL 2.03.2021, 19:33:35

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


Napisany przez: breadi 4.03.2021, 00:54:27

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/

Napisany przez: 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;

Napisany przez: ReBeLs513 4.03.2021, 18:28:52

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.

Napisany przez: viking 5.03.2021, 06:46:58

Po to masz opcję w my.cnf skip-networking + ewentualnie odpowiednie reguły na firewall. Tak myślałem że chcesz przekombinować.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)