Выполнение процедуры во всей базе данных SQL Azure на SQL Server с помощью модуля автоматизации Runbook без использования строки подключения.

Я выполняю связанную с обслуживанием процедуру для всей базы данных Azure SQL на сервере Azure SQL в определенной группе ресурсов. Я использую powershell и получаю все БД одновременно с помощью командлета Get-AzSqlDatabase, затем я перебираю БД и выполняю процедуру для каждой БД, используя имя пользователя/пароль.

Предоставляет ли Azure способ запуска процедур без набора имени пользователя/пароля для каждой базы данных? Я хочу этого, потому что есть случай, когда не все БД на сервере имеют одинаковое имя пользователя/пароль.


person Anurag Arya    schedule 24.03.2020    source источник


Ответы (1)


В любом случае вам необходимо пройти аутентификацию, прежде чем вы получите доступ к базе данных. Тогда вопрос в том, можете ли вы пройти аутентификацию автоматически.

Исходя из моего опыта, есть решение, которое соответствует вашим требованиям. Тебе нужно:

  1. Предоставьте администратора Azure Active Directory для вашего сервера базы данных SQL Azure. И на самом деле, вы можете добавить группу безопасности в качестве администратора, тогда все члены этой группы смогут получить доступ к базе данных. См. следующий блог: Azure Пользователь/группа Active Directory и база данных SQL Azure.

  2. Получите токен с Управляемое удостоверение Azure.

  3. Подключитесь к Azure SQL с помощью маркера доступа.

    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Data Source = <AZURE-SQL-SERVERNAME>; Initial Catalog = <DATABASE>"
    $SqlConnection.AccessToken = $AccessToken
    $SqlConnection.Open()
    
  4. Теперь вам просто нужно включить проверку подлинности группы AAD для каждой базы данных SQL.

Единственным недостатком является то, что вам необходимо получить токен доступа с помощью Azure Managed Identity. Потому что с управляемой идентификацией вы можете получить токен доступа без имени пользователя или пароля. Однако служба автоматизации Azure не поддерживает управляемое удостоверение. Итак, вам нужно использовать виртуальную машину Azure, веб-приложение Azure или функцию Azure, которая поддерживает управляемое удостоверение.


Справка:

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

person Jack Jia    schedule 24.03.2020
comment
Спасибо, это очень полезно, я попробую это сегодня. Но мне бы очень хотелось, чтобы у нас было что-то подобное с Automation Runbook. - person Anurag Arya; 26.03.2020