Как поделиться базой данных с пользователями, расположенными в разных сетях и странах - PullRequest
0 голосов
/ 21 апреля 2019

Я занимаюсь разработкой приложения для Windows, которое использует базу данных «MSSQL Server», установленную на моем компьютере.Приложение имеет два интерфейса: менеджер и пользователь, пользователь будет находиться в разных странах, то есть в разных сетях.сеть, к которой подключен мой компьютер, имеет высокий уровень безопасности, а мой компьютер имеет локальный IP-адрес.Какой самый лучший и безопасный способ поделиться базой данных и позволить пользователям, находящимся в сети X, получить доступ к моей базе данных?например: я должен использовать онлайн базу данных или лазурь или точку обмена или DNS?

, если у кого-либо есть опыт в этом виде соединения, пожалуйста, советуйте.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

В этом случае просто используйте localhost и выполните следующие действия:

mysql -u user -p

или

mysql -hlocalhost -u user -p

Если вы не можете войти в систему с этим, вы должны выяснить, какие имена пользователей (user @ host) существуют в MySQL Server локально. Вот что вы делаете:

Шаг 01) Запустите mysql, чтобы пароли не требовались, пароли не использовались и соединения TCP / IP запрещались

service mysql restart --skip-grant-tables --skip-networking

Имейте в виду, что стандартный SQL для добавления пользователей, предоставления и отзыва привилегий отключен.

Шаг 02) Показать пользователей и хостов

select concat(''',user,'''@''',host,'''') userhost,password from mysql.user;

Шаг 03) Проверьте пароль, чтобы убедиться, что он работает

select user,host from mysql.user where password=password('YourMySQLPassword');

Если ваш пароль не выводится для этого запроса, у вас неверный пароль.

Если ваш пароль производит вывод для этого запроса, посмотрите на пользователей и хосты. Если значение вашего хоста равно «%», вы сможете подключиться откуда угодно. Если ваш хост - localhost, вы можете подключиться локально.

Создайте пользователя, у вас есть определение 'root' @ 'localhost'.

Как только вы сделали то, что нужно, просто перезапустите mysql как обычно

service mysql restart

Если вы можете успешно подключиться к macbook, выполните этот запрос:

SELECT USER(),CURRENT_USER();

USER () сообщает, как вы пытались пройти аутентификацию в MySQL

CURRENT_USER () сообщает, как вам разрешили проходить аутентификацию в MySQL

Дайте нам знать, что происходит !!!

Войдите на удаленный сервер и повторите шаг 1-3

Посмотрите, разрешает ли какой-либо пользователь удаленный доступ (т. Е. Host в mysql.user равен '%'). Если вы этого не сделаете, то добавьте 'user' @ '%' в mysql.user.

0 голосов
/ 21 апреля 2019

Вот решение для этого!

Перейти на сервер MySQL Введите следующий код, чтобы предоставить доступ для другого компьютера mysql> предоставь все привилегии на. в «root» @ «%», идентифицируемый как «root_password»; mysql> сбросить привилегии;

Замените "%" IP-адресом, для которого вы хотите предоставить доступ!

Это сработало для меня!

...