Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以通过ARM模板在Azure SQL中设置非管理用户吗?_Azure_Azure Sql Database_Azure Resource Manager - Fatal编程技术网

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

可以通过ARM模板在Azure SQL中设置非管理用户吗?,azure,azure-sql-database,azure-resource-manager,Azure,Azure Sql Database,Azure Resource Manager,我找到的大多数用于部署Azure应用程序服务+Azure SQL数据库的示例ARM模板最终都使用创建Azure SQL Server时提供的管理员登录凭据(例如,这一个)来配置web应用程序的连接字符串。我还看到了为托管标识配置的应用程序服务,然后该用户通过AAD授予了对Azure SQL实例的管理访问权 我不想以这种方式提供生产应用程序,但我找不到更安全配置的示例 我找到的关于配置非管理员用户的唯一其他信息是在Azure SQL实例已经启动之后。这意味着我必须在ARM部署之外添加另一个步骤,以

我找到的大多数用于部署Azure应用程序服务+Azure SQL数据库的示例ARM模板最终都使用创建Azure SQL Server时提供的管理员登录凭据(例如,这一个)来配置web应用程序的连接字符串。我还看到了为托管标识配置的应用程序服务,然后该用户通过AAD授予了对Azure SQL实例的管理访问权

我不想以这种方式提供生产应用程序,但我找不到更安全配置的示例

我找到的关于配置非管理员用户的唯一其他信息是在Azure SQL实例已经启动之后。这意味着我必须在ARM部署之外添加另一个步骤,以使我的系统完全正常工作

在撰写此问题时,将自定义Powershell脚本作为ARM部署的一部分运行是一条可行的途径,但这并不理想


是否可以通过ARM模板在Azure SQL中配置非管理用户,而不必求助于PowerShell?

如果您想通过ARM模板在Azure SQL数据库中创建非管理用户,这是不可能的。因为Azure ARM模板团队只定义
管理员
类型,而不在服务器中定义
用户
类型或用户属性。我们可以通过ARM模板创建SQL管理员或Azure AD管理员。有关更多详细信息,请参阅和


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

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


如果您想将其作为Microsoft.SQL/servers资源声明的一部分,则不可以(如Jim所述)。

除非您编写自定义脚本(powershell或其他),否则这是不可能的。当我们通过arm模板创建SQL数据库时,我们无法创建非管理用户。因为目前,arm模板并没有定义它,我们只能创建SQL管理员和Azure AD管理员:正如我所怀疑的那样。谢谢你链接到另一个SO问题-我在之前的搜索中没有遇到过这个问题。@DeanGoodman你还有其他问题吗?如果你没有其他顾虑,你能接受它作为一个答案吗?它可以帮助更多的人。