В моем 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
?