Я также не смог найти решение, чтобы избавиться от sql учетных данных администратора. Есть параметр azureADOnlyAuthentication , добавленный к "apiVersion": "2019-06-01-preview"
из шаблона Microsoft.Sql / Servers / administrator , но все время, когда я пытался указать какое-либо значение, развертывание БД не выполнялось с таймаутом.
Мне нравится решение , предложенное Вивьеном Шевалье - для создания логина и пароля для Sql Админ. Я немного изменил его на основе комментариев, а также использовал случайный пароль в качестве префикса. Идея состоит в том, чтобы пропустить параметры sql учетных данных администратора при использовании учетных данных администратора AD, чтобы сгенерировались sql учетные данные администратора, пароль нигде не хранится, поэтому его невозможно получить. Шаблон:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"sqlServerName": {
"type": "string",
"metadata": {
"description": "The name of the SQL Server."
}
},
"sqlServerAdministratorName": {
"type": "string",
"metadata": {
"description": "The name for SQL Server administrator."
},
"defaultValue": "[uniqueString(resourceGroup().id, '{24CF6AE7-F4CA-44D7-8FBD-B7F85C0BDDF6}')]"
},
"sqlServerAdministratorPassword": {
"type": "securestring",
"metadata": {
"description": "The password for SQL Server administrator."
},
"defaultValue": "[concat('C3@TnTAjqVnr', uniqueString(resourceGroup().id, newGuid()), toUpper(uniqueString(resourceGroup().id, newGuid())))]"
},
"sqlServerAdministratorADName": {
"type": "string",
"metadata": {
"description": "The name of the AD user/group for SQL Server administrator."
}
},
"sqlServerAdministratorADSid": {
"type": "string",
"metadata": {
"description": "The SID of the AD user/group for SQL Server administrator."
}
},
"transparentDataEncryption": {
"type": "string",
"allowedValues": [
"Enabled",
"Disabled"
],
"defaultValue": "Disabled",
"metadata": {
"description": "Enable or disable Transparent Data Encryption (TDE) for the database."
}
},
"databaseName": {
"type": "string",
"metadata": {
"description": "The name for the database."
}
},
"databaseCollation": {
"type": "string",
"defaultValue": "SQL_Latin1_General_CP1_CI_AS",
"metadata": {
"description": "Database collation"
}
},
"databaseServiceObjectiveName": {
"type": "string",
"defaultValue": "Basic",
"metadata": {
"description": "The name of the configured service level objective of the database."
}
},
"sqlTier": {
"type": "string",
"defaultValue": "Standard"
},
"sqlSkuName": {
"type": "string",
"defaultValue": "S1"
}
},
"resources": [
{
"name": "[parameters('sqlServerName')]",
"type": "Microsoft.Sql/servers",
"apiVersion": "2019-06-01-preview",
"location": "[parameters('location')]",
"properties": {
"administratorLogin": "[parameters('sqlServerAdministratorName')]",
"administratorLoginPassword": "[string(parameters('sqlServerAdministratorPassword'))]"
},
"tags": {
"displayName": "SqlServer"
},
"resources": [
{
"name": "[concat(parameters('sqlServerName'), '/', 'ActiveDirectory')]",
"type": "Microsoft.Sql/servers/administrators",
"apiVersion": "2019-06-01-preview",
"properties": {
"administratorType": "ActiveDirectory",
"login": "[parameters('sqlServerAdministratorADName')]",
"sid": "[parameters('sqlServerAdministratorADSid')]",
"tenantId": "[subscription().tenantId]"
},
"dependsOn": [
"[parameters('sqlServerName')]"
]
},
{
"name": "[concat(parameters('sqlServerName'), '/', parameters('databaseName'))]",
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2019-06-01-preview",
"location": "[parameters('location')]",
"tags": {
"displayName": "Database"
},
"properties": {
"collation": "[parameters('databaseCollation')]",
"requestedServiceObjectiveName": "[parameters('databaseServiceObjectiveName')]"
},
"sku": {
"name": "[parameters('sqlSkuName')]",
"tier": "[parameters('sqlTier')]"
},
"dependsOn": [
"[parameters('sqlServerName')]"
],
"resources": [
{
"comments": "Transparent Data Encryption",
"name": "current",
"type": "transparentDataEncryption",
"apiVersion": "2014-04-01",
"properties": {
"status": "[parameters('transparentDataEncryption')]"
},
"dependsOn": [
"[parameters('databaseName')]"
]
}
]
}
]
}
],
"outputs": {
"sqlServerFqdn": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Sql/servers/', parameters('sqlServerName')),'2015-05-01-preview').fullyQualifiedDomainName]"
},
"databaseName": {
"type": "string",
"value": "[parameters('databaseName')]"
}
}
}
Пример сгенерированных параметров:
sqlServerAdministratorName ka7bwq3hord7a
sqlServerAdministratorPassword C3@TnTAjqVnrqquzzkrgjp4tuLS645X4JUANDU