是否可以通过ARM模板在Azure SQL中设置非管理用户?

时间:2020-06-25 17:32:55

标签: azure azure-sql-database azure-resource-manager

我发现用于部署Azure App Service + Azure SQL数据库的大多数示例ARM模板最终都使用创建Azure SQL Server时提供的管理员登录凭据(此{{3} }, 例如)。我还看到了为托管身份配置的App Service,然后该用户通过AAD通过Azure SQL实例授予了管理访问权限。

我永远都不想用这种方式来配置生产应用程序,但是我找不到更安全的配置中的示例。

在Azure SQL实例启动后,我发现的关于调配非管理员用户的唯一其他信息是from Microsoft。这意味着我必须在ARM部署之外再增加一个步骤,以使系统充分发挥功能。

截至撰写此问题时,作为ARM部署的一部分运行自定义Powershell脚本是via SQL,这可能是一条前进的道路,但这并不理想。

是否可以在不使用PowerShell的情况下通过ARM模板在Azure SQL中配置非管理用户?

2 个答案:

答案 0 :(得分:2)

如果要通过arm模板在Azure SQL数据库中创建非管理用户,则不可能。因为Azure ARM模板团队仅定义Administrators类型,但未定义服务器中的user类型或用户属性。我们只是可以通过ARM模板创建SQL Admin或Azure AD Admin。有关更多详细信息,请参阅herehere

因此,如果要创建非管理用户,则需要编写自定义脚本。

答案 1 :(得分:0)

如果要在模板部署中创建用户,则可以使用deployScripts资源运行TSQL或任何任意脚本:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/deployment-script-template?tabs=CLI

如果要作为Microsoft.SQL / servers资源声明的一部分进行操作,则不可以(如Jim所述)。