【问题标题】:Database and user creation in EF Core when deploying to Kubernetes部署到 Kubernetes 时在 EF Core 中创建数据库和用户
【发布时间】:2018-02-01 16:52:49
【问题描述】:

我们有一个 .net core 应用程序被部署到一个访问 AWS RDS MS SQL 数据库的 Kubernetes 集群。

在这种环境中,我们希望使用 EF Code First 来处理我们的模型(也许稍后会进行迁移,但最初删除和创建很好)。

在这种环境下,我们如何创建一个对 RDS 实例具有适当权限的 SQL 用户,以便 Web 应用程序可以以此用户身份登录并创建代码优先模型?

我们最初的方法是创建一个用户作为.sh 脚本的一部分,创建一个数据库并分配权限。当我们尝试运行 Database.EnsureExists() 的 C# 代码中看到有一个数据库并且没有构建模型时,这种情况就失败了。

我认为也许不创建数据库并向用户分配更高的权限可能会起作用,但这感觉是一种糟糕的方法,除非我们在之后运行某种部署后删除 dboesqe 权限。

对于我们打算在每次运行时删除/创建/种子的临时部署,推荐的方法是什么?

【问题讨论】:

    标签: entity-framework ef-code-first kubernetes ef-core-2.0


    【解决方案1】:

    我也一直在纠结这个问题。我们首先在 Kubernetes 上使用 Microsoft SQL 数据库编写 .NET Core EF 代码。

    我一直在搞乱 context.Database.Migrate()。这将创建数据库,然后创建表并执行迁移(案例 1),或者如果数据库已经存在,它只会创建表并执行迁移(案例 2)。

    对于情况 1,该帐户需要具有 dbcreator 服务器角色。创建数据库后,它将为自己分配 dbo 数据库角色。

    对于案例 2,您可能只提供 db_ddladmin、db_datareader 和 db_datawriter。我已经对此进行了测试,它似乎工作正常,但我不确定没有 dbo 访问权限的副作用。朱莉?

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 2020-12-16
      • 2021-07-03
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      相关资源
      最近更新 更多