#azure #azure-resource-manager #azure-sql-database #azure-sql-server
#лазурный #azure-resource-manager #azure-sql-database #azure-sql-server #azure
Вопрос:
Можно ли назначить администратора Active Directory экземпляру SQL Azure в шаблоне ресурсов ARM? Я пытаюсь автоматизировать развертывание сервера базы данных, но, похоже, я могу указать только учетные данные администрирования локального сервера.
"properties": {
"administratorLogin": "[parameters('databaseAdministratorLogin')]",
"administratorLoginPassword": "[parameters('databaseAdministratorPassword')]",
"version": "12.0"
},
Похоже, что я нигде не могу указать конкретного администратора Azure AD, кроме этого.
Ответ №1:
Корпорация Майкрософт обратилась ко мне и предоставила образец шаблона ресурса для достижения этой цели:
{
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"SQL Administrator Login": {
"type": "String"
},
"SQL Administrator Password": {
"type": "SecureString"
},
"AAD Admin Login": {
"type": "String"
},
"AAD Admin ObjectID": {
"type": "String"
},
"AAD TenantId": {
"type": "String"
},
"Location (Region)": {
"type": "String"
},
"Server Name": {
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers",
"name": "[parameters('Server Name')]",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('Location (Region)')]",
"properties": {
"administratorLogin": "[parameters('SQL Administrator Login')]",
"administratorLoginPassword": "[parameters('SQL Administrator Password')]",
"version": "12.0"
},
"resources": [
{
"type": "firewallrules",
"name": "AllowAllWindowsAzureIps",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('Location (Region)')]",
"properties": {
"endIpAddress": "0.0.0.0",
"startIpAddress": "0.0.0.0"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('Server Name'))]"
]
},
{
"type": "administrators",
"name": "activeDirectory",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('Location (Region)')]",
"properties": {
"administratorType": "ActiveDirectory",
"login": "[parameters('AAD Admin Login')]",
"sid": "[parameters('AAD Admin ObjectID')]",
"tenantId": "[parameters('AAD TenantID')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('Server Name'))]"
]
}
]
}
]
}
Комментарии:
1. Вы знаете, возможно ли создать вход без администратора? Могу ли я создавать роли и назначать пользователя этим ролям в шаблоне ARM?
2. Я думаю, что логины, не являющиеся администраторами, обрабатываются только на уровне базы данных. Это не то, что вы бы поместили в шаблон ARM, а скорее просто было бы частью схемы базы данных.
3. есть ли способ найти идентификатор SID (или просто указать имя пользователя / группы?)
4. Предполагая, что у вас есть разрешения на просмотр сведений о пользователе, вы должны иметь возможность просматривать эту информацию на портале Azure, Azure Powershell или через Azure AD Graph Explorer.
Ответ №2:
Изменение: вышеуказанное не будет запущено из-за:
CloudException: ошибка проверки шаблона развертывания: «Ресурс шаблона «ActiveDirectory» для типа «Microsoft.Sql / servers / administrators» в строке «168» и столбце «9» имеет неправильную длину сегмента. Вложенный тип ресурса должен иметь одинаковое количество сегментов в качестве имени ресурса. Корневой тип ресурса должен иметь длину сегмента на единицу больше, чем его имя ресурса.Пожалуйста, смотрите https://aka.ms/arm-template/#resources для получения подробной информации об использовании.’.
{
"type": "Microsoft.Sql/servers/administrators",
"name": "[concat(parameters('servers_tbg_backoffice_name'), '/', 'activeDirectory' )]",
"apiVersion": "2014-04-01-preview",
//"location": "[parameters('Location (Region)')]",
"properties": {
"administratorType": "ActiveDirectory",
"login": "[parameters('AAD Admin Login')]",
"sid": "[parameters('AAD Admin ObjectID')]",
"tenantId": "[parameters('AAD TenantID')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('servers_tbg_backoffice_name'))]"
]
},
Комментарии:
1. Есть ли вероятность, что один из ваших параметров имеет a
/
в имени?