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