2016-01-11 73 views
0

我需要遠程用戶訪問MySQL數據庫。我還需要限制他們對MySQL數據庫表的權限。當前數據庫包含約。 50 +表,而不是撤銷按表的權限表,我試圖給用戶沒有權限的訪問,然後添加那些需要的。我做了什麼時,出現工作:MySQL對外部連接的撤銷權限

  1. 我以root身份登錄(通過SSH)
  2. 我登錄使用「的mysql -u用戶名-p」 - 爲新創建的用戶輸入自己的密碼。

此用戶帳戶尊重我設置的所有權限。但是,當此用戶嘗試通過其桌面客戶端連接時 - 他們可以連接但無法查看數據庫。當使用「使用數據庫名稱」,他們得到這個錯誤:

錯誤代碼:1044拒絕訪問用戶「用戶名」 @「%」數據庫「數據庫名稱」

不知道這是否幫助,但我使用Media Temple DV w/Plesk。我已經第一次添加該用戶。然後我SSH入並撤銷所有權限。然後我添加了用戶的權限並執行了命令「flush privileges」。沒有任何工作。正如我所說,如果我通過命令行訪問(以root用戶身份進行SSH訪問之後),權​​限將得到遵守,我可以訪問數據庫 - 只是不能遠程訪問。

任何幫助將不勝感激。

+0

如果你有機會檢查從外部連接:選擇用戶,從mysql.user主機;在那裏你會看到這個用戶可以登錄到mysql的主機 – xto

回答

0

可能是允許連接的網絡是localhost,但不是用戶網絡IP。 並檢查最大連接數量。

0

如果您是通過SSH以root的身份和MySQL數據庫是在同一臺機器上,那麼我想,如果你運行:

mysql -u username -p 

你嘗試連接到MySQL作爲「用戶名」 @ 'localhost'用戶。 如果你想從該服務器的外部連接到MySQL數據庫,您需要:

  • 創建用戶像「用戶名」 @「%」允許連接到MySQL使用「用戶名」從任何地方(「% 「)
  • 允許MySQL服務器通過設置綁定地址more details here
+0

我試過這個(用戶使用mysql -u username -p連接),並且工作 - 當我登錄時。這是當我使用遠程客戶端連接時 - 像MySQL Workbench),當它不。因爲我使用的是Plesk,所以我首先在Plesk中創建用戶,然後撤銷所有權限,然後手動將其添加回來(即USAGE,SELECT,INSERT,UPDATE等)。首先有幾十個表格需要撤銷所有表格,並允許對特定的幾個表格進行特定訪問。 – ScoobaSteve

+0

但它不是關於特權。這是關於您想要連接的用戶。當你被SSH連接並嘗試連接到本地MySQL時,那麼你以'user'@'localhost'連接。只允許該用戶從本地主機連接 - 從您被SSH連接的服務器。如果您想從外部連接,例如通過Workbench,則需要創建用戶'user'@'%'並將所有權限授予該用戶。 – xto

+0

select current_user(); - 您可以檢查登錄後的用戶 – xto