EF Code First 迁移,在 SQL Azure 中不使用管理员帐户时出现性能问题

EF Code First Migration, performance issues when not using admin account in SQL Azure

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

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

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

我们使用网络应用程序中的这些帐户连接到数据库以获取当前迁移,如果有任何待处理的迁移,请应用它们。

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

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

我得出的结论是,一定有某种允许我们降低性能的东西。

我添加了 db_ddladmin 角色解释 但没有成功。

我们在 Entity Framework 迁移中使用 DbMigrator class 来获取挂起的迁移。

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

之前我们只是在数据库中创建了登录名和对应的用户。 根据此 post SQL Azure 不支持默认数据库,因此如果我没有任何权限,它默认为 master 数据库。

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