部署到Kubernetes

时间:2018-02-01 16:52:49

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

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

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

我们如何在这个环境中创建一个对RDS实例具有适当权限的SQL用户,以便Web应用程序可以作为该用户登录并创建代码第一个模型?

我们的初始方法涉及将用户创建为.sh脚本的一部分,创建数据库并分配权限。这与我们试图运行的{#1}}中的C#代码一样,看到有一个数据库并且没有构建模型。

我认为可能不会创建数据库并为用户分配更高的权限可能会有效,但这感觉就像一个糟糕的方法,除非我们运行某种后期部署以删除之后的Database.EnsureExists() esqe权限。

我们打算在每次运行时删除/创建/播种的短暂部署的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

我也一直在争论这个问题。首先,我们使用Microsoft SQL数据库在Kubernetes上进行.NET Core EF代码。

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

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

对于情况2,您可能只需要提供db_ddladmin,db_datareader和db_datawriter。我已经对此进行了测试,但效果似乎不错,但是我不确定没有dbo访问的副作用。朱莉?