Мой код требует SELECT, пока я использовал только INSERTS - PullRequest
0 голосов
/ 16 декабря 2018

СЦЕНАРИЙ

Здравствуйте, я программирую на 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 для получения этих данных.

Так ли это?Как я могу предотвратить это?

...