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

Jak przyznać wszystkie uprawnienia w bazie danych w MySQL?

Aby rozpocząć edycję uprawnień w MySQL, musisz najpierw zalogować się do swojego serwera, a następnie połączyć się z mysql klient. Zazwyczaj będziesz chciał połączyć się z root lub którekolwiek konto jest Twoim głównym, początkowym kontem „super użytkownika”, które ma pełny dostęp przez całą instalację MySQL.

Zazwyczaj root użytkownik otrzyma hasło uwierzytelniające podczas instalacji MySQL, ale jeśli tak nie jest, powinieneś podjąć kroki w celu zwiększenia bezpieczeństwa, dodając root hasła zgodnie z ilustracją w oficjalnej dokumentacji.

Łączenie z narzędziem wiersza poleceń MySQL

W tym przykładzie przyjmiemy root jest głównym kontem MySQL. Aby rozpocząć korzystanie z narzędzia wiersza poleceń MySQL (mysqlcli ), połącz się ze swoim serwerem jako root użytkownika, a następnie wydaj mysql polecenie:

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>

Jeśli się powiedzie, zobaczysz dane wyjściowe dotyczące połączenia MySQL i będziesz skierowany w dół mysql monit.

Uwaga:w przypadku, gdy nie możesz połączyć się bezpośrednio z serwerem jako root użytkownika przed połączeniem z mysql , możesz określić użytkownika, z którym chcesz się połączyć jako dodając --user= flaga:

$ mysql --user=username

Przyznawanie uprawnień

Teraz, gdy jesteś w mysqlcli monit, wystarczy wydać GRANT polecenie z niezbędnymi opcjami, aby zastosować odpowiednie uprawnienia.

Typy uprawnień

GRANT polecenie jest w stanie zastosować szeroką gamę uprawnień, wszystko od możliwości CREATE tabele i bazy danych, odczyt lub zapis FILES , a nawet SHUTDOWN serwer. W poleceniu dostępnych jest wiele flag i opcji, więc możesz chcieć zapoznać się z tym, co GRANT może to zrobić, przeglądając oficjalną dokumentację.

Uprawnienia specyficzne dla bazy danych

W większości przypadków będziesz nadawać uprawnienia użytkownikom MySQL na podstawie konkretnej database to konto powinno mieć dostęp. Jest to powszechna praktyka, na przykład dla każdej unikalnej database MySQL na serwerze, aby mieć własnego unikalnego user z nim powiązany, tak że tylko jeden user ma dostęp uwierzytelniający do jednej database i odwrotnie.

Aby GRANT ALL uprawnienia do user , pozwalając temu użytkownikowi na pełną kontrolę nad konkretną database , użyj następującej składni:

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

Za pomocą tego polecenia poinstruowaliśmy MySQL, aby:

  • GRANT PRIVILEGES typu ALL (a więc wszystko oczywiście). Uwaga:większość nowoczesnych instalacji MySQL nie wymaga opcjonalnych PRIVILEGES słowo kluczowe.
  • Te uprawnienia dotyczą database_name i dotyczy wszystkich tabele tej bazy danych, co jest wskazywane przez .* co następuje.
  • Te uprawnienia są przypisane do username kiedy ta username jest połączony lokalnie, jak określono przez @'localhost' . Aby określić dowolny prawidłowy host, zastąp 'localhost' z '%' .

Zamiast przydzielać wszystkie uprawnienia do całej bazy danych, być może chcesz dać tolkien tylko użytkownik możliwość odczytu danych (SELECT ) od authors tabela books Baza danych. Można to łatwo osiągnąć w ten sposób:

mysql> GRANT ALL PRIVILEGES ON books.authors  TO 'tolkien'@'localhost';

Tworzenie kolejnego superużytkownika

Chociaż nie jest to szczególnie bezpieczne, w niektórych przypadkach możesz chcieć utworzyć innego „super użytkownika”, który ma WSZYSTKIE uprawnienia we WSZYSTKICH bazach danych na serwerze. Można to zrobić podobnie jak powyżej, ale zastępując database_name z gwiazdką z symbolem wieloznacznym:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';

Teraz tolkien ma takie same uprawnienia jak domyślny root konto, uważaj!

Zapisywanie zmian

Jako ostatni krok po wszelkich aktualizacjach uprawnień użytkownika, pamiętaj, aby zapisać zmiany, wydając FLUSH PRIVILEGES polecenie z mysql monit:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

  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 utworzyć bazę danych ze skryptu w MySQL

  2. WEEKOFYEAR() Przykłady – MySQL

  3. Jak sprawdzić stan serwera w MySQL Workbench za pomocą GUI

  4. Osiągnij hierarchię, relacje rodzic/dziecko w skuteczny i łatwy sposób

  5. Jak zaimportować dane z pliku tekstowego do bazy mysql