2011-12-21 97 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将允许它,因为没有明确规定的权限的主机部分。