我只使用INSERTS

时间:2018-12-16 20:27:51

标签: c# mysql permissions

场景

您好,我正在C#中编写一个应用程序,该应用程序将一个数据库中的一些小数据(仅使用INSERTS / UPDATES备份)从A备份到具有不同ip的B。

在数据库A上,我执行SELECT查询以将所有数据缓存在一个列表中,该列表工作得非常顺利。为了转移到B,在同一函数中,我在其中执行了带有INSERTS和UPDATES的foreach来逐个存储寄存器。

问题

我不希望数据库(和服务器)B上的用户具有选择任何内容的权限。 “ SHOW GRANTS”显示用户具有的SELECT,INSERT和UPDATE。

因此,每当我撤销SELECT(由“ SHOW GRANTS”测试)时,在MySQL工作台中,用户将正常执行操作(无法进行SELECT)。但是在代码中,它将引发异常,表明我无权工作。

信息

  • 我正在使用MySQL 5.7.14。
  • 使用C#,WindowsFormsApp编程。
  • 要从服务器A读取数据,请使用MySqlConnection,MySqlDataReader和MySqlCommand。
  • 要在服务器B(问题出在哪里)上进行INSERT / UPDATE,我将MySqlConnection和MySqlCommand与ExecuteNonQuery()一起使用。

问题

我认为问题在于ExecuteNonQuery()函数执行以下操作:

  

针对该连接执行Transact-SQL语句,并返回受影响的行数。

取自手册。听起来像“ [...]返回受影响的行数”,好像它在某处执行SELECT来获取该数据。

是吗?我该如何预防?

0 个答案:

没有答案