2011-12-21 96 views
0

我在vb.net上做了一個winforms應用程序,它連接到我的web服務器上的mysql數據庫來讀寫數據,這一切都很好。每個主機的MySQL連接

但我必須允許用戶ip遠程連接到數據庫。

是否有可能讓每個人都可以訪問數據庫?用戶帳戶不具有所有權利,如果數據丟失,數據不是非常重要。

用戶帳戶和連接詳細信息是硬編碼的。

我知道這不是安全的,但這並不重要。

回答

1

是的,這很可能。在您的mysql權限表中,您必須爲該用戶授予通配符(%)主機訪問權限。然後在你的VB.NET代碼中使用connectionString中的地址。

+0

謝謝,對於正確的anwser非常快速的回覆。 – PandaNL 2011-12-21 15:35:14

0

但我必須允許用戶ip遠程連接到數據庫。

爲什麼?

另外兩個選項:

1 - 將數據公開爲Web服務。它已經在Web服務器上...
2 - 構建一個Web應用程序,而不是桌面應用程序。

+0

mysql不會允許其他連接而不是本地主機,你需要手動添加一個ip來連接遠程。 – PandaNL 2011-12-21 15:27:58

+0

@PandaNL:我明白了。我在質疑你是否有*這樣做。我說我更喜歡上面的選項1和2,而不是所要求的解決方案。 – RedFilter 2011-12-21 15:52:43

1

是的,您可以將數據庫的權限GRANT授權給擁有通配符的同一用戶。更多信息here

您可以在主機名中指定通配符。例如,[email protected]'%.example.com'適用於example.com域中任何主機的user_name,而[email protected]'192.168.1.%'適用於192.168.1 C類子網中任何主機的user_name。

簡單形式user_name是user_name @'%'的同義詞。

這樣,每一個應用程序連接到從任意主機數據庫和連接字符串來認證使用相同的用戶名/密碼,和MySQL將允許它,因爲沒有明確規定的權限的主機部分。