我在嘗試從遠程主機獲得連接時做了一堆GRANTS。所以我做了:我可以從mysql.user表中刪除陳舊的條目嗎?
GRANT ALL PRIVILEGES ON *.* TO 'prog'@'foobar-dev.foobar.com' WITH GRANT OPTION;
但是,'foobar-dev'不再存在。並且還有很多其他的條目其它不存在的主機..
我做了以下REVOKE,希望能在mysql.user中的條目將消失:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'prog'@'foobar-dev.foobar.com'.
此設置中的所有列mysql.user爲'prog'@foobar-dev.foobar.com'爲「N」,但刪除該行會不會更好(更清潔)?我沒有刪除該行,因爲這可能會「破壞某些東西」並違反系統表的參照完整性,我不太熟悉。但是,它有點讓人分心,因爲我每次選擇mysql.user來檢查權限時都必須看到它。我一直認爲系統表應該反映現實情況,而不是過去的一個小例子。
那麼,mysql.user「站在自己的位置」,這樣刪除其中的行沒有副作用影響到其他表?維護這張表的正確方法是什麼?
這會打破什麼?
delete from mysql.user where Host = 'foobar-dev.foobar.com' and User = 'prog';
TIA!
很感謝指着我在正確的方向。 – 2012-04-15 20:03:30