Управление базами данных в базе данных SQL Azure с помощью служба автоматизации Azure
В этой статье описывается процедура подключения баз данных и управления ими в базе данных SQL Azure с помощью управляемого удостоверения, назначаемого системой служба автоматизации Azure. С помощью служба автоматизации Azure можно управлять базами данных в База данных SQL Azure с помощью последних командлетов Az PowerShell, доступных в Azure Az PowerShell.
служба автоматизации Azure эти командлеты Azure Az PowerShell доступны вне поля, чтобы вы могли выполнять все задачи управления базами данных SQL в службе. Эти командлеты можно также связать в служба автоматизации Azure с командлетами других служб Azure для автоматизации сложных задач в службах Azure и в сторонних системах.
служба автоматизации Azure также могут выдавать команды T-SQL (Transact SQL) на серверах SQL с помощью PowerShell.
Чтобы выполнить команды в базе данных, выполните следующие действия:
- Убедитесь, что у учетной записи службы автоматизации есть управляемое удостоверение, назначаемое системой.
- Предоставьте соответствующие разрешения управляемому удостоверению службы автоматизации.
- Настройте SQL Server для использования проверки подлинности Microsoft Entra.
- Создайте пользователя на сервере SQL Server, который сопоставляется с управляемым удостоверением учетной записи службы автоматизации.
- Создайте модуль Runbook для подключения и выполнения команд.
- (Необязательно) Если сервер SQL защищен брандмауэром, создайте гибридную рабочую роль Runbook (HRW), установите модули SQL на этом сервере и добавьте IP-адрес HRW в список разрешений брандмауэра.
Подключение к базе данных SQL Azure с помощью управляемого удостоверения, назначаемого системой
Чтобы разрешить доступ из управляемого удостоверения системы автоматизации в базу данных SQL Azure, выполните следующие действия.
Если управляемое удостоверение системы автоматизации имеет значение OFF, сделайте следующее:
Войдите на портал Azure.
Перейдите в учетную запись службы автоматизации.
На странице учетной записи службы автоматизации в разделе "Параметры учетной записи" выберите "Удостоверение".
На вкладке " Назначаемая системой" выберите состояние в качестве ON.
После включения управляемого удостоверения системы необходимо предоставить учетную запись необходимого доступа, выполнив следующие действия.
- В учетной записи службы автоматизации | Страница удостоверений , вкладка "Назначенная системой" в разделе разрешений выберите назначения ролей Azure.
- На странице назначений ролей Azure нажмите кнопку +Добавить назначение ролей (предварительная версия).
- В раскрывающемся списке Добавление назначения ролей (предварительная версия) выберите область как SQL, выберите подписку, ресурс из раскрывающегося списка и роли в соответствии с минимальными необходимыми разрешениями, а затем нажмите кнопку "Сохранить".
Настройте SQL Server для проверки подлинности Active Directory, выполнив следующие действия.
- Перейдите на домашнюю страницу портал Azure и выберите серверы SQL.
- На странице SQL Server в разделе "Параметры" выберите идентификатор Microsoft Entra.
- Выберите " Задать администратора" , чтобы настроить SQL Server для проверки подлинности AD.
Добавьте проверку подлинности на стороне SQL, выполнив следующие действия:
- Перейдите на домашнюю страницу портал Azure и выберите серверы SQL.
- На странице SQL Server в разделе "Параметры" выберите База данных SQL.
- Выберите базу данных, чтобы перейти на страницу базы данных SQL и выберите редактор запросов (предварительная версия) и выполните следующие два запроса:
# AutomationAccount - replace with your Automation account's name # ObjectID - replace with object (principal) ID for your system managed identity principal from step 1. CREATE USER "AutomationAccount" FROM EXTERNAL PROVIDER WITH OBJECT_ID = `ObjectID` EXEC sp_addrolemember `db_owner`, "AutomationAccount"
Пример кода
Подключение к Azure SQL Server
if ($($env:computerName) -eq "Client") {"Runbook running on Azure Client sandbox"} else {"Runbook running on " + $env:computerName}
Disable-AzContextAutosave -Scope Process
Connect-AzAccount -Identity
$Token = (Get-AZAccessToken -ResourceUrl https://database.windows.net).Token
Invoke-Sqlcmd -ServerInstance azuresqlserverxyz.database.windows.net -Database MyDBxyz -AccessToken $token -query 'select * from TableXYZ'
Проверка разрешений учетной записи на стороне SQL
SELECT roles.[name] as role_name, members.name as [user_name]
from sys.database_role_members
Join sys.database_principals roles on database_role_members.role_principal_id= roles.principal_id
join sys.database_principals members on database_role_members.member_principal_id=members.principal_id
Order By
roles.[name], members.[name]
Примечание.
При запуске СЕРВЕРА SQL Server за брандмауэром необходимо запустить модуль Runbook служба автоматизации Azure на компьютере в собственной сети. Убедитесь, что этот компьютер настроен как гибридная рабочая роль Runbook, чтобы IP-адрес или сеть не блокировались брандмауэром. Дополнительные сведения о настройке компьютера в качестве гибридной рабочей роли см. в статье о создании гибридной рабочей роли.
Использование гибридной рабочей роли
При использовании гибридной рабочей роли модули, используемые модулем Runbook, необходимо установить локально из запроса PowerShell с повышенными привилегиями. Например, - Install-module Az.Accounts and Install-module SqlServer
. Чтобы найти необходимые имена модулей, выполните команду для каждого командлета и проверьте источник. Например, чтобы проверить имя модуля для командлета Connect-AzAccounts
, который входит в модуль Az.Account, выполните команду: get-command Connect-AzAccount
Примечание.
Рекомендуется добавить следующий код в верхней части любого модуля Runbook, который предназначен для запуска в гибридной рабочей роли: if ($($env:computerName) -eq "CLIENT") {"Runbook running on Azure CLIENT"} else {"Runbook running on " + $env:computerName}
Код позволяет видеть узел, на котором он работает, и в случае случайного запуска его в облаке Azure вместо гибридной рабочей роли, а затем помогает определить причину, по которой модуль Runbook не работал.
Следующие шаги
- Подробные сведения об использовании учетных данных см. в статье Управление учетными данными в службе автоматизации Azure.
- Дополнительные сведения о модулях можно найти в статье Администрирование модулей в службе автоматизации Azure.
- При необходимости см. статью Запуск runbook в службе автоматизации Azure.
- Дополнительные сведения о PowerShell см. в документации по PowerShell.