【发布时间】:2019-06-11 20:34:47
【问题描述】:
我正在继承一个具有这个公共虚拟方法的类
public virtual int ExecuteSqlCommand(string query, params SqlParameter[] parameters)
{
return _context.Database.ExecuteSqlCommand(query, parameters);
}
我想覆盖它并提供对数据库的只读访问权限,因此应限制任何插入/更新命令
我可以通过在查询中搜索插入/更新关键字来做到这一点,但我不确定这是 100% 的证明。
有没有更好的方法来实现这一点?
【问题讨论】:
-
是的——不要授予访问数据库的帐户更改任何内容的权限(和/或仅为这些访问创建备用帐户)。这是 唯一 万无一失的方法,没有在命令上使用功能齐全的 T-SQL 解析器,即使你这样做了,你也无法判断是否(比如说)存储过程调用更新任何东西。
标签: c# entity-framework-6