MySQL i dodanie nowego super użytkownika

Jak wiadomo bezpieczniej jest pracować na innym użytkoniku niż „root”. W MySQL jest również taka opcja.

Możemy zrobić użytkownika który posiada wszystkie uprawnienia, ale nie nazywa się „root” dzięki czemu jest on bezpieczniejszy.

Aktualna wersja na samym dole.

Logujemy się na root za pomocą terminala:
mysql -u root -p
Lub jeśli nie znamy hasła:
sudo mysql -u root

Następnie wykonujemy komendy:
CREATE USER 'uzytkownik'@'localhost' IDENTIFIED with mysql_native_password BY 'haslo-uzytkownika';
GRANT ALL PRIVILEGES ON *.* TO 'uzytkownik'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Gdzie w powyższych to:
1. utworzenie użytkownika
2. nadanie mu wszystkich uprawnień (można to samo wykonać już do istniejącego użytkownika)
3. przeładowanie uprawnień

I gotowe, można się zalogować na nowego użytkownika lub wylogować i zalogować na istniejącego i powinniśmy mieć wszystkie uprawnienia.

Aktualizacja 29.10.2019
Czasami po instalacji na nowo, a raczej teraz już aktualnie po instlacji na nowo pojawi się komunikat brzmiący:
mysqli_real_connect(): The server requested autentication method unknow to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested method unknown to the client

W takiej sytuacji możemy wydać polecenie następujące:
alter user 'username'@'localhost' identified with mysql_native_password by 'password';
I możemy się poprawnie zalogować.

Aktualizacja 26.09.2022
Wraz z kolejnymi wersjami, zmieniają się trochę te zasady. Teraz na użytkownika root jest bardzo ciężko się zalogować i trzeba zmieniać polityki, aby to zrobić. Wychodzi więc, że dużo łatwiej zrobić nowego użytkownika z uprawnieniami niż tamto edytować.
Aby utworzyć nowego wydajemy komendę:
sudo mysql -u root
To nas zaloguje jako root (jeśli znamy hasło administratora systemu – a zakładam, że je znamy), a następnie lecimy tradycyjnie:
CREATE USER 'uzytkownik'@'localhost' IDENTIFIED BY 'haslo-uzytkownika';
GRANT ALL PRIVILEGES ON *.* TO 'uzytkownik'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Czyli wylatuje tylko „with mysql_native_password” z pierwszej metody, ale te słowa sprawiają, że nie można wykonać polecenia.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Proszę dokończyć równanie: * Time limit is exhausted. Please reload CAPTCHA.