将Azure SQL 数据库与 Azure DevOps Server 配合使用

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

使用本文中的步骤通过 Azure SQL 数据库 配置 Azure DevOps Server。 与使用本地 SQL Server 相比,此拓扑还有其他几个步骤。

要求

  • Azure SQL 数据库只能与 Azure DevOps Server 2019 及更高版本一起使用。
  • 必须在 Azure VM 上安装 Azure DevOps Server。
  • VM 必须启用系统托管标识,该标识用于向 Azure SQL 数据库进行身份验证。
  • VM 必须加入域,但不能加入工作组。
  • Azure SQL 数据库必须是单一数据库。 Azure DevOps Server 2022 和更新的 Azure DevOps Server 2022 支持托管实例和弹性池。

支持所有常规用途和高级 SKU。 还支持标准 SKU S3 和更高版本。 不支持基本 SKU 和标准 SKU S2 及更低版本。 使用 Azure SQL 数据库 的 Azure DevOps Server 配置不支持具有 SQL Server Analysis Services 报告功能的旧版 SQL Server Reporting Services。 相反,可以使用 Azure DevOps Analytics

仅当使用 Azure SQL 数据库时,才支持从 Team Foundation Server 2015 及更新版本升级到 Azure DevOps Server。 Azure SQL 数据库不支持加密存储过程。

设置Azure SQL 数据库

  1. 在虚拟机上配置托管标识。 目前我们仅支持系统托管标识。

    可以使用所有标准机制来运行配置,包括:

  2. 若要设置新的 Azure DevOps Server 实例,请创建两个 Azure SQL 数据库:

    • AzureDevOps_Configuration

    • AzureDevOps_DefaultCollection

      注意

      如果使用现有数据库,则可以跳过此步骤:

      • 升级新版本的 Azure DevOps Server。
      • 将 Azure DevOps Server 的最新实例迁移到 Azure SQL 数据库。
  3. 为 Azure SQL 数据库 服务器配置 Azure Active Directory 身份验证。 使自己成为服务器上的 Active Directory 管理员。 需要对数据库具有管理员权限才能完成剩余的配置步骤。 稍后可以更改此权限。

  4. 如果使用多个服务器,请启用托管标识或标识,以登录到 Azure SQL 数据库,并为其授予适当的权限。 使用 SQL Server Management Studio 连接到数据库服务器。 将 Azure Active Directory 用户与 Active Directory 身份验证配合使用进行连接。 如果登录到 SQL 身份验证下的Azure SQL 数据库,则无法操作 Azure Active Directory 用户。

    a. 对 main 数据库运行以下 T-SQL 命令:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    ALTER ROLE [dbmanager] ADD MEMBER [VMName]
    

    将 VMName 替换为要添加到数据库的托管标识的虚拟机的名称。

    b. 在配置和所有集合数据库上运行以下 T-SQL 命令:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER  
    ALTER ROLE [db_owner] ADD MEMBER [VMName]  
    ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo  
    

配置 Azure DevOps Server

返回到 Azure DevOps Server 配置向导。 如果设置了新实例,请选择“ 这是一个新的 Azure DevOps Server 部署”。 如果升级或迁移数据库中的现有数据,请选择 “我有用于此 Azure DevOps Server 部署的现有数据库”。

在配置向导中访问“数据库”页时,请指定Azure SQL 数据库服务器实例。 通常,服务器实例采用 SQLInstanceName.database.windows.net 的形式

现在,你有一个在 Azure SQL 数据库 上运行的 Azure DevOps Server 实例。