我想根据不同的权限集使用NHibernate Filters来隐藏用户的某些行。
我可以从过滤器调用存储过程吗?
是否存在过滤器不会过滤记录或导致错误的情况?
谢谢!
答案 0 :(得分:2)
不,你不能。过滤器被转换为SQL语句的WHERE子句的一部分。
不确定您的意思 - 如果过滤器是正确的并且已应用它将起作用,它不是一个半生不熟的功能...
答案 1 :(得分:2)
David M已经回答了这个问题,但我想补充一点:
您没有指定数据库,但由于您提到“存储过程”,我将假设它是SQL Server。在这种情况下,视图是解决此问题的更可靠的工具。
当然,这取决于你,但我看到的方式是 - 为什么在数据库级别使用强大的安全性时,为什么在应用程序级别使用脆弱的安全模型(哎呀,忘了在这里启用过滤器)?如果您对特定视图设置了特定权限,那么错误几乎不可能导致安全漏洞。