私の PHP スクリプトでは、2 つのデータベースdb1
とdb2
. myuser@localhost
にアクセスできるがアクセスできないユーザーdb1
がいますdb2
。
テーブルから選択する場合mysql.user
、1 つのレコードがあり、そのユーザーのホストはワイルドカード%
であり、ホストはありません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 myuser@% |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*7733323232...' |
| GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'%' |
| GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'%' |
+-----------------------------------------------------------------------------------------------------------+
私のPHPスクリプトではアクセスできますdb1
が、エラーが発生します: INSERT command denied to user 'myuser'@'localhost' for table 'HISTORY'
.
ユーザーはmyuser@localhost
であり、人々は許可を追加することを提案しましたmyuser@localhost
が、なぜこのユーザーは にアクセスでき、アクセスできないのdb1
ですかdb2
?