В моем PHP script я получаю доступ к двум базам данных db1 и db2. У меня есть пользователь [email protected], который может получить доступ к db1, но не может получить доступ к db2.
При выборе из таблицы mysql.user существует одна запись, и хост для этого пользователя является подстановочным знаком %, нет хоста localhost.
SELECT user, host FROM mysql.user WHERE user = 'myuser'; дай мне:
+------------+------+
| user | host |
+------------+------+
| myuser | % |
+------------+------+
1 row in set (0.00 sec)
Глядя на GRANTS для этого пользователя, я вижу те же разрешения для db1, что и для db2
SHOW GRANTS FOR 'myuser'@'%';
+-----------------------------------------------------------------------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*7733323232...' |
| GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'%' |
| GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'%' |
+-----------------------------------------------------------------------------------------------------------+
В моем PHP script я могу получить доступ к db1, но я получаю сообщение об ошибке: INSERT command denied to user 'myuser'@'localhost' for table 'HISTORY'.
В нем указано, что пользователь [email protected], и люди предложили добавить разрешение для [email protected], однако, почему этот пользователь имеет доступ к db1, а не к db2?