【问题标题】:Multi Tenant Application - Auto Create Database多租户应用程序 - 自动创建数据库
【发布时间】:2016-03-26 19:51:30
【问题描述】:

我有一个多租户应用程序,我正在尝试使用 Web 应用程序包在 Azure 上部署它。

当用户注册一个新帐户时,系统会为他们创建一个数据库,这在我使用 SQL Server 2014 的开发机器上完美运行。

我是否需要在 Azure 上配置数据库服务器以允许此操作,如果需要,如何操作?

【问题讨论】:

  • 只有帐户的所有者(您)有权读取/写入数据到 Azure 服务器。任何其他用户只能通过查询网页和使用您的凭据来访问数据。因此,您必须确保 Azure 上的任何可执行文件都使用您的凭据运行。
  • @jdweng 你在说什么?这个问题与凭据无关; OP 不希望最终用户创建数据库(或者如果他们是,我当然没有在问题中看到这一点)。 OP 表示该应用程序已经在使用 SQL Server,并且他们在使用 SQL 数据库服务时遇到了问题。
  • 标题为“创建数据库”。 OP 正在尝试“在 Azure 上部署”。
  • 我面临的问题是以编程方式将 Code First 与 DB Initializer 一起使用不会在 azure 上为新帐户创建数据库。此过程在本地实例中运行,也许我需要调整我的代码以与 Azure 对话以创建数据库,而不是 Database.Initilizer(new CreateDatabaseIfNotExisits())

标签: c# .net azure azure-sql-database


【解决方案1】:

没有创建数据库可能是由于超时造成的。看到这个帖子:Entity Framework Database Initialization: Timeout when initializing new Azure SqlDatabase

【讨论】:

    【解决方案2】:

    如果您需要在有人注册时创建新数据库,最好在启动 Entity Framework 之前创建数据库。

    这可以在连接到服务器的主数据库时使用 T-SQL (1) 或使用 Azure Sql 管理库 (2) 来完成。我会推荐选项二,因为它可以让你依赖一个很好的抽象,而不是直接与数据库交互。

    1:https://msdn.microsoft.com/en-us/library/dn268335.aspx

    2:https://www.nuget.org/packages/Microsoft.Azure.Management.Sql

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 2014-11-01
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      相关资源
      最近更新 更多