在我的组织中,我们刚刚开始将某些应用程序用于实体框架。过去,我们已经推动开发人员利用存储过程进行所有数据库访问。除了帮助SQL注入之外,我们还尝试授予对存储过程的登录访问权限,以保证安全性相对较低。
虽然可以通过EF中的存储过程轻松完成插入,更新和删除,但似乎很难使用存储过程通过EF查询数据。但是,使用LINQ或Entity SQL并允许EF创建查询意味着为用户提供对整个数据库的读访问权。
其他人如何应对这种困境?
答案 0 :(得分:3)
您尝试应用哪种数据保护?
使用EF,您可以编写一个单元可测试的业务逻辑层,它将处理比您在数据库层可以执行的更多授权方案(尽管我可以看到多层安全性让您感觉更安全):
如果您的情况意味着您还没准备好将数据库视为数据存储而不是安全性和数据存储。业务逻辑层,那么EF可能不适合您的项目。
P.S。 EF将保护您免受SQL注入。