Mysql
 sql >> база данни >  >> RDS >> Mysql

1045, Достъпът е отказан за потребител 'username'@'NOT-local' (използвайки парола:ДА)

показване на влизания към сървъра (обърнете внимание, че % означава произволен хост или заместващ знак)

select user,host from mysql.user;

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

покажете какви грантове съществуват за определен потребител.

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'@'%'
+----------------------------------------------------------------------

Как да предоставим достъп до определен db за определен вход. По-долу предоставяме всички права на потребителя върху so_gibberish база данни .

grant ALL on so_gibberish.* to '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 `so_gibberish`.* TO 'ajax_guy'@'%'         
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Създайте нов вход drew_saturday с парола friday987 .Има всички привилегии вбаза данни so_gibberish и може да влезете от всеки хост (% )

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 |
+---------------+------+-------------------------------------------+

Тази парола по-горе е хешираната парола между другото.

Забележка:за MySQL 5.7 командата по-горе ще бъде:

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

Страница с ръководство на Mysql на Grant . Не предоставяйте прекомерни права на потребители, използващи grant ALL on *. ... . Това би било за всички база данни в системата. Просто прочетете ръководството и по-малкото е повече.

Понякога администраторите искат да предоставят достъп само на шепа таблици в база данни (не всички таблици в нея) за вход. Ръководството е задължително да прочетете за това.

И едно последно нещо. 'drew_saturday'@'%' е различен вход от 'drew_saturday'@'NOT-local' (взаимстван от вашето заглавие). Това са различни входове с различни права. Това е смисълът на първото нещо, което написах горе.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преминаване от база данни към сесии

  2. MySQL - mysqldump --routines за експортиране само на 1 съхранена процедура (по име), а не на всяка рутина

  3. Кога да използвате SQL_NO_CACHE

  4. Защо размерът на таблицата на InnoDB е много по-голям от очакваното?

  5. изчислете средна стойност без десетични знаци