场景
您好,我正在C#中编写一个应用程序,该应用程序将一个数据库中的一些小数据(仅使用INSERTS / UPDATES备份)从A备份到具有不同ip的B。
在数据库A上,我执行SELECT查询以将所有数据缓存在一个列表中,该列表工作得非常顺利。为了转移到B,在同一函数中,我在其中执行了带有INSERTS和UPDATES的foreach来逐个存储寄存器。
问题
我不希望数据库(和服务器)B上的用户具有选择任何内容的权限。 “ SHOW GRANTS”显示用户具有。的SELECT,INSERT和UPDATE。
因此,每当我撤销SELECT(由“ SHOW GRANTS”测试)时,在MySQL工作台中,用户将正常执行操作(无法进行SELECT)。但是在代码中,它将引发异常,表明我无权工作。
信息
问题
我认为问题在于ExecuteNonQuery()函数执行以下操作:
针对该连接执行Transact-SQL语句,并返回受影响的行数。
取自手册。听起来像“ [...]返回受影响的行数”,好像它在某处执行SELECT来获取该数据。
是吗?我该如何预防?