2011-05-08 68 views
4

我有一臺服務器,它是爲我創建的。 在它上面有一個叫做「測試」的模式。如何防止用戶訪問特定的模式?

我已經用root用戶登錄過,並創建了一個名爲「WEB」的新模式。

create schema WEB; 

我現在想要做的是有一個用戶,只能看到新的模式。

所以我創建了一個用戶,像這樣:

create user webtestuser identified by 'webtestuser'; 

grant select, insert, update, delete on WEB.* to webtestuser; 

的問題是,當我與新用戶登錄,我仍然可以看到「測試」模式。即使我在用戶面前「撤銷所有」,該架構仍然可見。

我在這裏失蹤的任何東西?

謝謝!

+1

請您可以登錄爲用戶和發佈命令'SHOW GRANTS的輸出;' – 2011-05-08 09:51:25

+0

您是否嘗試過取消權限的測試,用戶模式,然後'FLUSH PRIVILEGES' ? – 2011-05-08 10:04:33

回答

3

默認情況下,mysql附帶一些授權,用於定義的測試模式。他們ALL ON test給所有用戶,也ALL ON test\_%所有用戶(test\_%匹配的東西一樣test_footest_123

的,因爲他們是定義我無法看到使用REVOKE ... FROM語法,所以你消除這些補助的方式方法「將不得不使用以下命令:

DELETE FROM mysql.db WHERE Db IN("test","test\_%") AND User="" AND Host="%"; 
FLUSH PRIVILEGES; 
+0

謝謝。這就是訣竅:) – Gidget 2011-05-09 13:47:12