MySQL to popularny i szeroko stosowany system zarządzania bazami danych, który przechowuje i porządkuje dane oraz umożliwia użytkownikom ich odzyskiwanie. Zawiera szeroką gamę opcji, które przyznają użytkownikom określone uprawnienia do tabel i baz danych.
W tym przewodniku dowiesz się, jak utworzyć nowego użytkownika i przyznać uprawnienia w MySQL baza danych.
Jak utworzyć nowego użytkownika w MySQL
Aby utworzyć nowego użytkownika, najpierw zaloguj się do powłoki MySQL.
$ sudo mysql -u root -p
Podaj hasło sudo, a następnie hasło podane podczas konfigurowania bazy danych MySQL i naciśnij ENTER . Następnie otrzymasz ten monit.


Aby utworzyć nowego użytkownika, użyj składni pokazanej poniżej:
MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Na przykład, aby utworzyć nowego użytkownika o nazwie „tecmint ’ w bazie danych, wywołaj polecenie:
MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';
Kilka punktów, o których należy pamiętać
Podczas dodawania użytkownika lokalnie, np. w systemie, w którym zainstalowałeś MySQL , host użytkownika jest określony jako localhost , a nie adres IP. Słowo kluczowe „host lokalny ‘ oznacza ‘ten komputer ‘, a MySQL traktuje to wyjątkowo. Zasadniczo, localhost jest używany przez klienta mysql do nawiązania połączenia z lokalnie zainstalowanym serwerem bazy danych MySQL.
Jak dotąd tecmint użytkownik nie ma żadnych uprawnień do interakcji z bazami danych. W rzeczywistości użytkownik nie może nawet uzyskać dostępu do powłoki MySQL.
Aby przyznać użytkownikowi pełny dostęp do wszystkich baz danych, w tym do tabel, uruchom.
MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';
W powyższym poleceniu gwiazdki wskazują odpowiednio bazę danych i tabelę, do których użytkownik ma dostęp. Przyznaje użytkownikowi wszystkie prawa do bazy danych – czytaj , napisz , edytuj, i wykonaj w tym wykonywanie wszystkich zadań w innych bazach danych i tabelach.
Do tej pory przyznaliśmy użytkownikowi pełny dostęp do bazy danych. Chociaż jest to przydatne w wyjaśnianiu koncepcji MySQL, generalnie nie jest to zalecane, ponieważ może stanowić zagrożenie dla bezpieczeństwa Twoich baz danych. Pomyśl tylko, co może się stać, jeśli haker zdobędzie hasło użytkownika. Przejdziemy dalej i omówimy, jak przypisać określone uprawnienia w następnej sekcji.
Po zakończeniu przypisywania uprawnień użytkownikowi ponownie załaduj wszystkie uprawnienia, jak pokazano, aby zmiany zaczęły obowiązywać.
MariaDB [none]> FLUSH PRIVILEGES
Jak przyznawać różne uprawnienia użytkownika
Oto zestawienie możliwych uprawnień, które możesz przyznać użytkownikom:
- WSZYSTKIE PRZYWILEJE – Jak wcześniej widzieliśmy, zapewnia to użytkownikowi MySQL pełny dostęp do określonej bazy danych.
- UTWÓRZ – Pozwala użytkownikom tworzyć nowe bazy danych lub tabele.
- UPUŚĆ – Umożliwia użytkownikom usuwanie baz danych lub użytkowników.
- WSTAW – Umożliwia użytkownikom wstawianie wierszy w tabelach.
- USUŃ – Umożliwia użytkownikom usuwanie wierszy z tabel.
- WYBIERZ – z uprawnieniem „SELECT” użytkownicy mogą czytać zawartość tabeli.
- AKTUALIZACJA – Pozwala użytkownikom aktualizować wiersze w tabeli.
- OPCJA PRZYZNANIA – Użytkownicy mogą przyznawać lub usuwać uprawnienia innych użytkowników.
Aby przyznać określone uprawnienia użytkownikowi, użyj składni:
MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';
Dodatkowo możesz przypisać uprawnienia do wszystkich tabel w bazie danych za pomocą pojedynczego symbolu gwiazdki, jak pokazano:
MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';
Na przykład, aby przypisać WYBIERZ uprawnienia do „tecmint ‘ użytkownik we wszystkich tabelach bazy danych testdb , uruchom polecenie.
MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';
Następnie usuń uprawnienia, aby zmiany zaczęły obowiązywać.
MariaDB [none]> FLUSH PRIVILEGES;


Dodatkowo możesz przypisać wiele uprawnień za jednym razem, oddzielając je przecinkiem, jak pokazano.
MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';


Jak unieważnić uprawnienia MySQL
Aby odebrać uprawnienia użytkownikowi, użyj składni:
MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';
Na przykład, aby odwołać INSERT uprawnienia od użytkownika „tecmint ’, uruchom polecenie.
MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost'; MariaDB [none]> FLUSH PRIVILEGES


Aby sprawdzić aktualne uprawnienia użytkownika, wykonaj:
MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';
Z poniższych danych wyjściowych widzimy, że INSERT pozwolenie zostało usunięte z „tecmint ’ użytkownik opuszcza tylko SELECT i AKTUALIZUJ prawa do testdb baza danych.


Aby przetestować logowanie do powłoki MySQL przy użyciu nowego użytkownika, najpierw się wyloguj.
MariaDB [none]> quit;
Następnie zaloguj się ponownie.
$ sudo mysql -u tecmint -p
Podaj hasło użytkownika i naciśnij ENTER aby uzyskać dostęp do powłoki.
Aby usunąć użytkownika, użyj DROP polecenie, tak jak podczas usuwania bazy danych.
MariaDB [none]> DROP USER 'username'@'localhost';
Możesz również przeczytać następujące artykuły dotyczące MySQL:
- Przydatne wskazówki dotyczące rozwiązywania typowych błędów w MySQL
- Mytop – przydatne narzędzie do monitorowania wydajności MySQL/MariaDB w systemie Linux
- Jak zmienić domyślny port MySQL/MariaDB w systemie Linux
- Jak zresetować hasło roota MySQL lub MariaDB w systemie Linux
Wniosek
Mamy nadzieję, że do tej pory możesz tworzyć użytkowników na swoich serwerach baz danych MySQL i wygodnie przypisywać lub cofać uprawnienia.