我正在阅读有关我的安全性的内容,并有一个一般性问题。 在数据库中,应仅授予用户所需的属性,即选择、读取、删除等。
当使用 Entity Framework 作为 ORM 时,我该如何实现? 实体没有权限的概念。
谢谢
最佳答案
为 Entity Framework 实现最低权限的方法是使用数据库登录名从 EF 到数据库的连接(通常这将在连接字符串中设置)。根据您使用 EF 的方式,应该只允许该登录执行某些操作。
显然,除非您使用存储过程进行插入/更新/删除,否则它需要对表(或 View )进行 CRUD 访问。它将需要在您使用的任何函数或存储过程上执行。
此外,如果您打算使用 Code First 迁移,它基本上必须拥有所有权,因为它将添加/删除表和列。
现在,这就是您为 EF 实现最小权限的方式,这可能不是您想要的。如果您想知道如何为您的用户实现它,那么这将是一个身份验证和授权问题,这超出了数据库的范围,并且对于你的申请。 (我想从技术上讲,您可以使用一种用户必须使用数据库登录名进行登录的方法,该方法将用于配置 EF 与数据库的连接,但我认为这往往很容易出错,特别是如果它位于网络应用程序。)
请告诉我这是否对您有帮助。 :)
关于entity-framework - Entity Framework 的最小权限原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077184/