将 Azure SQL Database 与 Azure DevOps Server 配合使用

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

使用本文中的步骤配置 Azure DevOps Server Azure SQL Database。 与使用本地 SQL Server 相比,此拓扑还有一些额外的步骤。

要求

  • Azure SQL 数据库只能与 Azure DevOps Server 2019 及更高版本一起使用。
  • 必须在 Azure VM 上安装Azure DevOps Server。
  • VM 必须启用系统托管标识,该标识用于向Azure SQL数据库进行身份验证。
  • VM 必须加入域,但不能加入工作组。
  • Azure SQL数据库必须是单一数据库。 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 Database 时,仅支持从 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. 在数据库上运行 master 以下 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 Database 上运行的 Azure DevOps Server 实例。