Операции поддержки для поставщиков ресурсов SQL

Важно!

Начиная со сборки Azure Stack Hub 2108, поставщики ресурсов SQL и MySQL предлагаются для подписок, которым предоставлен доступ. Если вы хотите начать использовать эту функцию или вам нужно выполнить обновление с предыдущей версии, отправьте обращение в службу поддержки , и наши инженеры службы поддержки помогут вам выполнить процесс развертывания или обновления.

Поставщик ресурсов SQL выполняется на заблокированной виртуальной машине. Чтобы включить операции обслуживания, вам нужно обновить систему безопасности виртуальной машины. Для этого используется принцип минимальных привилегий, используйте конечную точку POWERShell Just Enough Administration (JEA)DBAdapterMaintenance. Пакет установки поставщика ресурсов содержит скрипт для этого действия.

Установка исправлений и обновлений

Поставщик ресурсов SQL не обслуживается как часть Azure Stack Hub, так как это дополнительный компонент. Корпорация Майкрософт предоставляет обновления поставщика ресурсов SQL по мере необходимости.

Для SQL RP версии 1 при выпуске обновленного поставщика ресурсов SQL Server предоставляется скрипт для применения обновления. Этот сценарий создает виртуальную машину поставщика ресурсов, перенося в нее состояние старой виртуальной машины поставщика.

Для SQL RP версии 2 поставщики ресурсов обновляются с помощью той же функции обновления, которая используется для применения обновлений Azure Stack Hub.

Дополнительную информацию см. в статье Обновление поставщика ресурсов SQL.

Обновление виртуальной машины поставщика

Sql RP версии 1 выполняется на пользовательской виртуальной машине. При выпуске необходимо применить необходимые исправления и обновления. Пакет клиентский компонент Центра обновления Windows можно установить во время установки или обновления поставщика ресурсов.

Sql RP версии 2 выполняется на управляемом сервере Windows Server, который скрыт. Вам не нужно исправлять или обновлять виртуальную машину поставщика ресурсов. Он будет обновляться автоматически при обновлении поставщика ресурсов.

Обновление определений Защитника Windows

Эти инструкции относятся только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Обновление определений Защитника Windows:

  1. Скачайте обновление определений Защитника Windows на странице обновлений механизма обнаружения угроз для программы "Защитник Windows".

    На странице обновления определений прокрутите список вниз до пункта Manually download the update (Скачать обновление вручную). Скачайте 64-разрядный файл "Windows Defender Antivirus for Windows 10 and Windows 8.1" (Антивирусная программа "Защитник Windows" для Windows 10 и Windows 8.1).

    Вы также можете использовать эту прямую ссылку, чтобы скачать и установить файл fpam-fe.exe.

  2. Создайте сеанс PowerShell для конечной точки обслуживания виртуальной машины для адаптера поставщика ресурсов SQL.

  3. Скопируйте файл обновления определений на виртуальную машину, используя сеанс конечной точки обслуживания.

  4. Во время сеанса обслуживания PowerShell выполните команду Update-DBAdapterWindowsDefenderDefinitions.

  5. После установки определений советуем удалить этот файл обновления определений с помощью команды Remove-ItemOnUserDrive.

Пример скрипта PowerShell для обновления определений

Вы можете изменить и запустить приведенный ниже сценарий, чтобы обновить определения Защитника. Замените значения в сценарии значениями для своей среды.

# Set credentials for local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
    ($vmLocalAdminUser, $vmLocalAdminPass)

# Provide the public IP address for the adapter VM.
$databaseRPMachine  = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"

# Download the Windows Defender update definitions file from https://www.microsoft.com/wdsi/definitions.
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
    -Outfile $localPathToDefenderUpdate

# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
    -Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
    -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
     -Destination "User:\"
# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
    {Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}
# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
    {Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession

Настройка расширения Диагностики Azure для поставщика ресурсов SQL

Эти инструкции относятся только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Расширение Диагностики Azure по умолчанию устанавливается на виртуальную машину адаптера поставщика ресурсов SQL. Далее приведены инструкции по настройке расширения для сбора операционных журналов событий поставщика ресурсов SQL и журналов IIS с целью устранения неполадок и аудита.

  1. Войдите на портал администратора Azure Stack Hub.

  2. Выберите Виртуальные машины на панели слева, найдите виртуальную машину адаптера поставщика ресурсов SQL и выберите ее.

  3. В разделе Параметры диагностики на виртуальной машине откройте вкладку Журналы и выберите Настройка, чтобы настроить собираемые журналы событий. Перейдите к параметрам диагностика

  4. Добавьте Microsoft-AzureStack-DatabaseAdapter/Operational!* для сбора журналов операционных событий поставщика ресурсов SQL. Добавление журналов событий

  5. Чтобы включить сбор журналов IIS, установите флажки Журналы IIS и Журналы неудачных запросов. Добавление журналов IIS

  6. Наконец, нажмите кнопку Сохранить , чтобы сохранить все параметры диагностики.

После настройки сбора журналов событий и журналов IIS для поставщика ресурсов SQL эти журналы можно найти в системной учетной записи хранения с именем sqladapterdiagaccount.

См. основные сведения о расширении Диагностики Azure.

Обновление учетных данных SQL

Вы несете ответственность за создание и обслуживание учетных записей системного администратора на серверах SQL. Поставщику ресурсов нужна учетная запись с этими привилегиями для управления базами данных для пользователей. При этом доступ к данным этих пользователей не требуется. Если требуется обновить пароли системного администратора на серверах SQL, можно использовать интерфейс администратора поставщика ресурсов, чтобы изменить сохраненный пароль. Эти пароли сохраняются в Key Vault в экземпляре Azure Stack Hub.

Чтобы изменить параметры, выберите Обзор>АДМИНИСТРАТИВНЫХ РЕСУРСОВ>Sql Hosting Servers>Имена входа SQL и выберите имя пользователя. Сначала необходимо внести изменения в экземпляр SQL (и любые реплики, если это необходимо). В разделе Параметры выберите Пароль.

Обновление пароля администратора SQL

Смена секретов

Эти инструкции относятся только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

При использовании поставщиков ресурсов SQL и MySQL в интегрированных системах Azure Stack Hub оператор Azure Stack Hub отвечает за смену следующих секретов инфраструктуры поставщика ресурсов, чтобы обеспечить их актуальность:

  • внешний SSL-сертификат, предоставленный во время развертывания;
  • пароль учетной записи локального администратора виртуальной машины поставщика ресурсов, предоставленный во время развертывания;
  • пароль пользователя диагностики (dbadapterdiag) поставщика ресурсов.
  • (версия >= 1.1.47.0) Key Vault сертификат, созданный во время развертывания.

Примеры PowerShell для смены секретов

Измените все секреты одновременно.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd  `
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Измените пароль пользователя диагностики.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Измените пароль учетной записи локального администратора виртуальной машины.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

Смена SSL-сертификата

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Смена сертификата Key Vault

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Параметры SecretRotationSQLProvider.ps1

Параметр Описание Комментарий
AzureEnvironment Среда Azure учетной записи администратора службы, которая использовалась для развертывания Azure Stack Hub. Требуется только для Microsoft Entra развертываний. Поддерживаемые имена сред: AzureCloud, AzureUSGovernment или, если используется идентификатор Microsoft Entra Для Китая, AzureChinaCloud. Необязательно
AzCredential Учетные данные учетной записи администратора службы Azure Stack Hub. Сценарий завершится ошибкой, если для учетной записи, используемой с AzCredential, требуется многофакторная проверка подлинности (MFA). Обязательный
CloudAdminCredential Учетные данные учетной записи домена администратора облака Azure Stack Hub. Обязательный
PrivilegedEndpoint Привилегированная конечная точка для получения информации о метке Azure Stack (Get-AzureStackStampInformation). Обязательный
DiagnosticsUserPassword Пароль учетной записи для пользователя диагностики. Необязательно
VMLocalCredential Учетная запись локального администратора на виртуальной машине MySQLAdapter. Необязательно
DefaultSSLCertificatePassword Пароль SSL-сертификата (*.pfx) по умолчанию. Необязательно
DependencyFilesLocalPath Локальный путь к файлам зависимостей. Необязательно
KeyVaultPfxPassword Пароль, используемый для создания сертификата Key Vault для адаптера базы данных. Необязательно

Эти инструкции относятся только к SQL RP версии 2, работающей в интегрированных системах Azure Stack Hub.

Примечание

Смена секретов для поставщиков ресурсов с добавленной стоимостью (RP) в настоящее время поддерживается только через PowerShell.

Как и инфраструктура Azure Stack Hub, поставщики дополнительных ресурсов используют как внутренние, так и внешние секреты. Как оператор, вы отвечаете за:

  • предоставление обновленных внешних секретов, таких как новый сертификат TLS, используемый для защиты конечных точек поставщика ресурсов;
  • Регулярное управление сменой секретов поставщика ресурсов.

Когда срок действия секретов приближается, на портале администрирования создаются следующие оповещения. Смена секретов позволит устранить условия, активирующие следующие оповещения:

  • ожидается истечение срока действия внутреннего сертификата;
  • ожидается истечение срока действия внешнего сертификата.

Предварительные требования

При подготовке к процессу смены:

  1. Если вы еще этого не сделали, установите модуль PowerShell Az для Azure Stack Hub, прежде чем продолжать. Для смены секретов Azure Stack Hub требуется предварительная версия 2.0.2 или более поздняя. Дополнительные сведения см. в разделе Миграция с AzureRM на Azure PowerShell Az в Azure Stack Hub.

  2. Установите Azs.Deployment. Модули Администратор 1.0.0: коллекция PowerShell | Azs.Deployment. Администратор 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Если срок действия внешнего сертификата приближается к сроку действия, ознакомьтесь с требованиями к сертификатам инфраструктуры открытых ключей Azure Stack Hub (PKI) перед получением или продлением сертификата X509, включая сведения о требуемом формате PFX. Также ознакомьтесь с требованиями, указанными в разделе Необязательные сертификаты PaaS для вашего конкретного поставщика дополнительных ресурсов.

Подготовка нового TLS-сертификата для смены внешних сертификатов

Примечание

Если истек срок действия только внутреннего сертификата, этот раздел можно пропустить.

Затем создайте или обновите свой TLS-сертификат для защиты конечных точек поставщика дополнительных ресурсов:

  1. Выполните действия, описанные в разделе Создание запросов на подпись сертификатов (CSR) для обновления сертификата для вашего поставщика ресурсов. Здесь вы используете средство проверки готовности Azure Stack Hub для создания CSR. Обязательно запустите правильный командлет для вашего поставщика ресурсов на шаге "Создание запросов сертификатов для других служб Azure Stack Hub". Например New-AzsDbAdapterCertificateSigningRequest , используется для ЗАПРОСОВ SQL и MySQL. По завершении вы отправляете созданный объект . Файл REQ в центр сертификации (ЦС) для нового сертификата.

  2. После получения файла сертификата от ЦС выполните действия, описанные в разделе Подготовка сертификатов к развертыванию или смене. Вам снова нужно использовать средство проверки готовности для обработки файла, возвращенного ЦС.

  3. Наконец, выполните действия, описанные в разделе Проверка сертификатов PKI Azure Stack Hub. Вы снова нужно использовать средство проверки готовности, чтобы выполнить проверочные тесты для вашего нового сертификата.

Смена внутреннего сертификата

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия, чтобы сменить внешние секреты поставщика ресурсов.

  1. Войдите в среду Azure Stack Hub, используя учетные данные оператора. См. статью Подключение к Azure Stack Hub с помощью PowerShell для сценария входа в PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Определите идентификатор продукта поставщика ресурсов. Выполните командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите интересующий вас поставщик ресурсов и запишите значения следующих свойств:

    • "name" – содержит идентификатор продукта поставщика ресурсов во втором сегменте значения;

    Например, у развертывания RP SQL может быть идентификатор "microsoft.sqlrp"продукта .

  3. Invoke-AzsProductRotateSecretsAction Выполните командлет , чтобы сменить внутренний сертификат:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Смена внешнего сертификата

Сначала необходимо заметить значения следующих параметров.

Заполнитель Описание Пример значения
<product-id> Идентификатор продукта последнего развертывания поставщика ресурсов. microsoft.sqlrp
<installed-version> Версия последнего развертывания поставщика ресурсов. 2.0.0.2
<package-id> Идентификатор пакета создается путем объединения product-id и installed-version. microsoft.sqlrp.2.0.0.2
<cert-secret-name> Имя, под которым хранится секрет сертификата. SSLCert
<cert-pfx-file-path> Путь к PFX-файлу сертификата. C:\dir\dbadapter-cert-file.pfx
<pfx-password> Пароль, назначенный сертификату . PFX-файл. strong@CertSecret6

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия.

  1. Войдите в среду Azure Stack Hub, используя учетные данные оператора. См. статью Подключение к Azure Stack Hub с помощью PowerShell для сценария входа в PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Получите значение параметра product-id. Выполните командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите интересующий вас поставщик ресурсов и запишите значения следующих свойств:

    • "name" – содержит идентификатор продукта поставщика ресурсов во втором сегменте значения;
    • "properties"."deployment"."version" – содержит номер развернутой версии.

Например, развертывание RP SQL может иметь идентификатор "microsoft.sqlrp"продукта и версию "2.0.0.2".

  1. Создайте идентификатор пакета поставщика ресурсов, объединив идентификатор продукта поставщика ресурсов и версию. Например, при использовании значений, полученных на предыдущем шаге, идентификатор пакета SQL RP имеет значение microsoft.sqlrp.2.0.0.2.

  2. Используя идентификатор пакета, полученный на предыдущем шаге, выполните Get-AzsProductSecret -PackageId, чтобы получить список типов секретов, используемых поставщиком ресурсов. В возвращенной коллекции value найдите элемент, содержащий значение "Certificate" для свойства "properties"."secretKind". Этот элемент содержит свойства для секрета сертификата RP. Запишите имя, присвоенное этому секрету сертификата, которое определяется последним сегментом свойства "name" сразу над "properties".

Например, коллекция секретов, возвращаемая для поставщика ресурсов SQL, содержит секрет с "Certificate" именем SSLCert.

  1. Используйте командлет Set-AzsProductSecret для импорта нового сертификата в Key Vault, который будет использоваться в процессе смены. Замените значения заполнителей переменной соответствующим образом перед выполнением скрипта.

    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Наконец, используйте Invoke-AzsProductRotateSecretsAction командлет для смены секретов:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Мониторинг хода смены секретов

Вы можете отслеживать ход смены секретов либо в консоли PowerShell, либо на портале администратора, выбрав поставщика ресурсов в службе Marketplace:

Экран выполнения смены секретов.

Примечание

Время смены секрета может стоить более 10 минут. После этого состояние поставщика ресурсов изменится на "Установлено".

Сбор данных журналов диагностики

Azure Stack Hub предоставляет несколько способов сбора, сохранения и отправки журналов диагностики в служба поддержки Майкрософт. Начиная с версии 1.1.93, поставщик ресурсов SQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Дополнительные сведения см. в разделе Сбор журналов диагностики.

Начиная с версии 1.1.93, поставщик ресурсов SQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Если вы используете более раннюю версию, рекомендуется обновить поставщик ресурсов SQL до последней версии.

Чтобы собрать данные журналов с заблокированной виртуальной машины, используйте конечную точку DBAdapterDiagnostics PowerShell Just Enough Administration (JEA). Она предоставляет следующие команды:

  • Get-AzsDBAdapterLog. Эта команда создает пакет ZIP с журналами диагностики поставщика ресурсов и сохраняет этот файл на пользовательском диске сеанса. Эту команду можно выполнить без параметров, чтобы собрать данные журналов за последние четыре часа.
  • Remove-AzsDBAdapterLog. Эта команда удаляет имеющиеся пакеты журналов на виртуальной машине поставщика ресурсов.

Требования и процесс работы конечной точки

При установке или обновлении поставщика ресурсов создается учетная запись пользователя dbadapterdiag. Она используется для сбора журналов диагностики.

Примечание

Пароль учетной записи dbadapterdiag такой же, как и у локального администратора на виртуальной машине, созданной при развертывании или обновлении поставщика.

Чтобы использовать команды DBAdapterDiagnostics, нужно создать удаленный сеанс PowerShell для виртуальной машины поставщика ресурсов и выполнить команду Get-AzsDBAdapterLog.

Вы можете задать период для сбора журналов с помощью параметров FromDate и ToDate. Если один или оба этих параметра не заданы, используются следующие значения по умолчанию:

  • FromDate — за четыре часа до текущего момента.
  • ToDate — текущий момент времени.

Пример скрипта PowerShell для сбора журналов

Приведенный ниже сценарий показывает, как собирать данные журналов диагностики на виртуальной машине поставщика ресурсов.

# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'

$diagCreds = New-Object System.Management.Automation.PSCredential `
        ($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
        -ConfigurationName DBAdapterDiagnostics `
        -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow

# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage

# Clean up the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

Известные ограничения поставщика ресурсов SQL Server версии 1

Ограничение:
При сбое сценария развертывания, обновления или смены секретов некоторые журналы не могут быть собраны стандартным механизмом сбора журналов.

Обходной путь.
Помимо использования стандартного механизма сбора журналов, перейдите в папку Журналы в извлеченной папке, где находится скрипт, чтобы найти дополнительные журналы.

Дальнейшие действия

Добавление серверов размещения SQL Server