Nadawanie praw do dodatkowej bazy danych MySQL powodującej problemy
Mam użytkownika ”myuser
„i dwie bazy danych. 'db1
' i 'db2
”
'myuser
„ma już prawa do używaniadb1
i chciałem udzielić mu dodatkowego pozwolenia na użytkowanie ”db2
„przy użyciu następującego zapytania:
GRANT ALL ON db2.* TO 'myuser'@'localhost';
Po wydaniu oświadczenia o dotacji ”myuser
„utracono połączenie z pierwszą bazą danych”db1
'
Obawiam się, że użyłem niewłaściwej nazwy hosta. Zamiast „localhost” powinienem użyć „%”. Kiedy robię:
select host from mysql.user where user = 'myuser';
Teraz widzę dwa rekordy hosta'%'
i 'localhost
”dla tego użytkownika
Kiedy uruchamiam instrukcje SHOW GRANT, otrzymuję uprawnienia dla różnych hostów. „localhost” i „%”.
mysql> SHOW GRANTS FOR 'myuser'@'localhost';
+----------------------------------------------------------------------+
| Grants for myuser@localhost |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'localhost' |
| GRANT ALL PRIVILEGES ON `beta_version`.* TO 'myuser'@'localhost' |
+----------------------------------------------------------------------+
i
mysql> SHOW GRANTS FOR 'myuser'@'%';
+-----------------------------------------------------------------------------------------------------------+
| Grants for myuser@% |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*6ASDFASDFASDF...'
| GRANT ALL PRIVILEGES ON `myuser`.* TO 'myuser'@'%'
+-----------------------------------------------------------------------------------------------------------+
Co się stało, co spowodowało ”myuser
'aby nie działać w moich skryptach PHP iw phpMyAdmin?