私の 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?