我正在转换Azure SQL DB以使用Active Directory身份验证。
我已将此代码段添加到我的ARM模板中,该模板正确将管理员设置为AD组。到目前为止,一切都很好!
{
"type": "administrators",
"name": "activeDirectory",
"apiVersion": "2014-04-01-preview",
"location": "[resourceGroup().location]",
"properties": {
"administratorType": "ActiveDirectory",
"login": "[parameters('sql_ad_admin_username')]",
"sid": "[parameters('sql_ad_admin_objectid')]",
"tenantId": "[parameters('azure_ad_directory_id')]"
},
"dependsOn": [
"[parameters('sql_db_name')]"
]
},
现在,它已经可以正常工作了,我想从ARM模板中删除旧的SQL Server Auth Administrator详细信息(并且我想将该模板存储在源代码管理中,因此显然其中没有凭据)。
所以,我尝试从文件中删除这些administratorLogin
和administratorLoginPassword
条目(毕竟不再需要它们了,我有一个AD管理员):
"properties": {
"administratorLogin": "admin",
"administratorLoginPassword": "XXXXXX",
"version": "12.0"
},
但是,删除它们后,运行模板时出现以下错误:
Invalid value given for parameter Login. Specify a valid parameter value.
现在我有些困惑。为什么我不能摆脱这些?我现在正在使用比SQL身份验证更安全的AD身份验证,但是它似乎迫使我设置了不太安全的用户名/密码管理员登录名?如何禁用此功能?
对于Azure SQL数据库,您无法摆脱最初的SQL Administrator登录名和密码。这始终是必需的,但是以与为AD Administrator参数化“ login”,“ sid”和“ tenantid”相同的方式,可以对模板中的“ administratorLogin”和“ administratorLoginPassword”值进行相同的操作。
管理员结构显示为here
根据我的研究,当我们使用ARM模板创建Azure SQL服务器时,我们无法不提供administratorLogin和administratorLoginPassword。有关更多详细信息,请参阅document