-1

我一直在帮助一家中小型企业使用 sql server 的实体框架核心实施新的 CRM。他们非常保护自己的 sql 数据库,以至于他们拒绝授予大多数表的权限,只授予某些列的一些权限(这就是他们过去的工作方式,使用视图进行所有数据操作)。

我曾争论过给予实体框架权限的理由,但被拒绝了,理由是大型企业在任何情况下都不会拥有可以完全访问实时数据库的凭据。

发布到生产环境时,数据库访问的最佳实践是什么?主要组织通常是否拥有可以完全控制数据和迁移模式的用户名和密码,或者是否有正确的方法来限制 ORM 的访问权限?

4

1 回答 1

0

我同意丹。如果要为所有 CRUD 操作创建存储过程,则使用 E​​F 没有多大意义。对于任何有大量程序的大型系统。我重写了一些旧代码,从所有存储过程转移到 EF Core,为 EF 提供完全读/写访问权限。存储过程更容易,因为您完全了解数据库中发生的一切。没有惊喜。但是要编写和维护很多代码。EF Core 让您可以专注于使用数据,而无需编写大量 SQL 代码。在我看来,以前的系统仍然具有完整的数据访问权限。它必须或无法管理数据。它只是被分解为数百个存储过程,而不是单个数据上下文。最后,我没有将 EF Core 的权限视为额外的安全风险。如果想法是程序的复杂性使其免受攻击,我认为这是一个弱论点。一旦攻击者获得系统访问权限,人们可能会认为他们可以找出其余的。

于 2021-03-10T22:28:14.880 回答