СЦЕНАРИЙ
Здравствуйте, я программирую на C # приложение, которое создает резервные копии (только с INSERTS / UPDATES) некоторых небольших данных из одной базы данных от A до B с разными ip.
В базе данных A я выполняю запросы SELECT, чтобы буферизовать все данные в списке, который работает очень гладко.Чтобы передать B, в той же функции я выполняю foreach с INSERTS и UPDATES для хранения регистров один за другим.
ПРОБЛЕМА
Я не хочупользователь в базе данных (и на сервере) B, чтобы иметь права на ВЫБЕРИТЬ что-либо.«SHOW GRANTS» показывает, что у пользователя есть SELECT, INSERT и UPDATE для . .
Таким образом, всякий раз, когда я отменяю SELECT (проверено 'SHOW GRANTS'), в рабочей среде MySQL пользователь будет действовать нормально (не может SELECT).Но в коде будет выдано исключение о том, что у меня нет прав на работу.
ИНФОРМАЦИЯ
- Я использую MySQL 5.7.14.
- Программирование на C #, WindowsFormsApp.
- Для чтения данных с сервера A я использую MySqlConnection, MySqlDataReader и MySqlCommand.
- INSERT / UPDATE на сервере B (где проблемаis), я использую MySqlConnection и MySqlCommand с ExecuteNonQuery ().
QUESTION
Я думаю, что проблема в том, что функция ExecuteNonQuery () выполняет следующие действия:
Выполняет оператор Transact-SQL для соединения и возвращает количество затронутых строк.
Взят из руководства.«[...] возвращает количество затронутых строк» звучит так, как будто он где-то выполняет SELECT для получения этих данных.
Так ли это?Как я могу предотвратить это?