2011-12-21 2 views
0

Я создаю приложение winforms в vb.net, которое подключается к базе данных mysql на моем веб-сервере для чтения и записи данных, все это работает нормально.Соединение MySQL для каждого хоста

Но я должен разрешить пользователям ip удаленно подключаться к базе данных.

Можно ли предоставить каждому доступ к базе данных? У учетной записи пользователя не будет всех прав, данные не очень важны, если они потерялись.

Учетная запись пользователя и сведения о подключении жестко закодированы.

Я знаю, что это не безопасно, но это действительно не имеет значения.

ответ

1

Да, это очень хорошо. В вашей таблице привилегий mysql вы должны предоставить подстановочный знак (%) доступ к хосту для пользователя. Затем в коде VB.NET просто используйте адрес в connectionString.

+0

Спасибо, за очень быстрый ответ с правильным андерсером. – PandaNL

0

Но я должен разрешить пользователям ip удаленное подключение к базе данных.

Почему?

Два других варианта:

1 - Вынести данные в качестве веб-службы. Это уже на веб-сервере ...
2 - Создайте веб-приложение вместо настольного приложения.

+0

mysql не разрешает другие подключения, кроме localhost, вам необходимо вручную добавить ip для подключения удаленного. – PandaNL

+0

@PandaNL: Я так понимаю. Я спрашивал, есть ли у вас * для этого. Я говорю, что предпочитаю варианты 1 и 2 выше по запросу. – RedFilter

1

Да, вы можете GRANT права доступа к базе данных тому же пользователю с подстановочными знаками в хосте. Дополнительная информация here.

Вы можете указать подстановочные знаки в имени хоста. Например, [email protected]'%.example.com 'применяется к имени пользователя для любого хоста в домене example.com, а [email protected]'192.168.1.%' применяется к имени пользователя для любого хоста в подсети класса 192.168.1.

Простая форма user_name является синонимом для user_name @ '%'.

Таким образом, каждое приложение подключается к базе данных от случайных хостов и использует тот же имя пользователя/пароль в строке подключения для проверки подлинности, и MySQL допустит, потому что хост часть разрешений явно не указана.