EF 代码优先迁移,在 SQL Azure 中不使用管理员帐户时出现性能问题



我们构建了一个 Web 工具 (C# WebAPI) 来管理使用 Entity Framework Code First Migrations 的 SQL Azure 数据库迁移。

默认情况下,当我们创建数据库时,我们还为每个数据库创建登录名和用户帐户。

这些帐户获得db_datareader和db_datawriter权限。

我们使用 Web 应用中的这些帐户连接到数据库以获取当前迁移,如果有任何挂起的迁移,请应用它们。

由于某种原因,此操作每次大约需要 10 秒(不应用任何更新)。

如果我们使用管理员帐户(在 Azure 中设置 SQL 服务器时关联),则时间会下降到不到一秒。

我得出的结论是,一定有某种许可的东西会让我们性能下降。

我添加了db_ddladmin此处解释的角色,但没有成功。

我们在实体框架迁移中使用 DbMigrator 类来获取挂起的迁移。

经过进一步的调查,我发现该问题的解决方案是在 master 数据库中创建 sql 用户。

之前我们只在数据库中创建了登录名和相应的用户。 根据这篇文章,SQL Azure不支持默认数据库,因此它默认为主数据库,因为我没有任何权利。

将用户添加到 master 数据库解决了"性能"问题。

最新更新