我有一個用戶'myuser
'和兩個數據庫。 'db1
'和'db2
'。授予其他MySQL數據庫導致問題的權利
「myuser
」已經有權使用db1
,我想給他用下面的查詢使用「db2
」其他權限:
GRANT ALL ON db2.* TO 'myuser'@'localhost';
後,我跑了GRANT語句,「myuser
」失去的連接到第一個數據庫'db1
'
恐怕我使用了錯誤的主機名。我應該使用'%'代替'localhost'。 當我做:
select host from mysql.user where user = 'myuser';
現在我看到兩個主機記錄'%'
和「localhost
」該用戶
當我運行SHOW GRANT語句,我得到的權限不同的主機。 'localhost'和'%'。
mysql> SHOW GRANTS FOR 'myuser'@'localhost';
+----------------------------------------------------------------------+
| Grants for [email protected] |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'localhost' |
| GRANT ALL PRIVILEGES ON `beta_version`.* TO 'myuser'@'localhost' |
+----------------------------------------------------------------------+
和
mysql> SHOW GRANTS FOR 'myuser'@'%';
+-----------------------------------------------------------------------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*6ASDFASDFASDF...'
| GRANT ALL PRIVILEGES ON `myuser`.* TO 'myuser'@'%'
+-----------------------------------------------------------------------------------------------------------+
發生了什麼事導致 'myuser
' 在我的PHP腳本,並在phpMyAdmin無法正常工作?
['SHOW GRANTS'只顯示明確授予指定帳戶的權限。其他特權可能可用於該帳戶,但它們不顯示。](http://dev.mysql.com/doc/en/show-grants.html) – eggyal