Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utworzyć nowego użytkownika i przyznać uprawnienia w MySQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przestawić schemat encji-atrybutu-wartości MySQL?

  2. W SQL / MySQL, jaka jest różnica między ON i WHERE w instrukcji join?

  3. Słowo kluczowe LIMIT na MySQL z przygotowaną instrukcją

  4. użyj zmiennej dla nazwy tabeli w mysql sproc

  5. Wstawianie zbiorcze z SQLAlchemy ORM