NHibernate Filter作为行级安全层

时间:2010-01-03 16:19:36

标签: nhibernate

我想根据不同的权限集使用NHibernate Filters来隐藏用户的某些行。

  1. 我可以从过滤器调用存储过程吗?

  2. 是否存在过滤器不会过滤记录或导致错误的情况?

  3. 谢谢!

2 个答案:

答案 0 :(得分:2)

  1. 不,你不能。过滤器被转换为SQL语句的WHERE子句的一部分。

  2. 不确定您的意思 - 如果过滤器是正确的并且已应用它将起作用,它不是一个半生不熟的功能...

答案 1 :(得分:2)

David M已经回答了这个问题,但我想补充一点:

您没有指定数据库,但由于您提到“存储过程”,我将假设它是SQL Server。在这种情况下,视图是解决此问题的更可靠的工具。

当然,这取决于你,但我看到的方式是 - 为什么在数据库级别使用强大的安全性时,为什么在应用程序级别使用脆弱的安全模型(哎呀,忘了在这里启用过滤器)?如果您对特定视图设置了特定权限,那么错误几乎不可能导致安全漏洞。