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

1045, Odmowa dostępu dla użytkownika 'nazwa_użytkownika'@'NIE-lokalny' (przy użyciu hasła:TAK)

pokaż loginy do serwera (zwróć uwagę, że % oznacza dowolnego hosta lub symbol wieloznaczny)

select user,host from mysql.user;

+-----------+------------+
| user      | host       |
+-----------+------------+
| ajax_guy  | %          |
| joe7      | %          |
| joe8      | %          |
+-----------+------------+

pokaż, jakie granty istnieją dla określonego użytkownika.

show grants for 'ajax_guy'@'%';

+----------------------------------------------------------------------
| Grants for [email protected]%                                              
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Jak przyznać dostęp do określonej bazy danych do określonego loginu.Poniżej przyznajemy wszystkie prawa użytkownikowi do so_gibberish baza danych .

grant ALL on so_gibberish.* to 'ajax_guy'@'%';

Spójrz na dotacje obowiązujące teraz dla tego loginu

+----------------------------------------------------------------------
| Grants for [email protected]%                                              
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
| GRANT ALL PRIVILEGES ON `so_gibberish`.* TO 'ajax_guy'@'%'         
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Utwórz nowy login drew_saturday z hasłem friday987 .Ma wszystkie uprawnienia do bazy danych so_gibberish i może się zalogować z dowolnego hosta (% )

grant ALL on so_gibberish.* to 'drew_saturday'@'%' IDENTIFIED BY 'friday987';

select user,host,password from mysql.user where user='drew_saturday';

+---------------+------+-------------------------------------------+
| user          | host | password                                  |
+---------------+------+-------------------------------------------+
| drew_saturday | %    | *4600ED0F377308959665877BD327D4788DC2071F |
+---------------+------+-------------------------------------------+

Nawiasem mówiąc, powyższe hasło jest haszowanym hasłem.

Uwaga:dla MySQL 5.7 powyższe polecenie to:

select user,host,authentication_string from mysql.user where user='drew_saturday';

Strona podręcznika Mysql na Grant . Nie nadawaj nadmiernych uprawnień użytkownikom korzystającym z grant ALL on *. ... . To byłoby dla wszystkich bazy danych w systemie. Po prostu przeczytaj instrukcję, a mniej znaczy więcej.

Czasami administratorzy chcą przyznać dostęp tylko do kilku tabel w bazie danych (nie do wszystkich tabel w niej) do logowania. Koniecznie przeczytaj instrukcję.

I ostatnia rzecz. 'drew_saturday'@'%' to inny login niż 'drew_saturday'@'NOT-local' (pożyczając z tytułu). Są to różne loginy z różnymi uprawnieniami. To jest punkt pierwszej rzeczy, którą napisałem tam na górze.




  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 uniknąć podkreślenia w zapytaniu łańcuchowym w hibernacji i SQL?

  2. Łączenie rekordów w jednej kolumnie bez zapętlania?

  3. MYSQL - Podziel dane na wiele wierszy

  4. Jak uniknąć przekroczenia limitu czasu oczekiwania blokady.?

  5. MySQL wyświetla wydajność