【问题标题】:Can non-administrative users be provisioned in Azure SQL via an ARM template?是否可以通过 ARM 模板在 Azure SQL 中预配非管理用户?
【发布时间】:2020-06-25 17:32:55
【问题描述】:

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

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

在 Azure SQL 实例已经启动后,我发现的关于预配非管理员用户的唯一其他信息是 via SQL。这意味着我必须在我的 ARM 部署之外添加另一个步骤才能让我的系统完全正常运行。

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

是否可以通过 ARM 模板在 Azure SQL 中预配非管理用户,而不使用 PowerShell?

【问题讨论】:

  • 我想说这是不可能的,除非您编写自定义脚本(powershell 或其他)
  • 通过arm模板创建SQL数据库时无法创建非管理员用户。因为目前 arm 模板没有定义它,我们只能创建 SQL admin 和 Azure AD admin :docs.microsoft.com/en-us/azure/templates/microsoft.sql/…

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


【解决方案1】:

如果你想通过 arm 模板在 Azure SQL 数据库中创建非管理用户,那是不可能的。因为 Azure ARM 模板团队只定义了Administrators 类型,并没有在服务器中定义user 类型或用户属性。我们可以通过 ARM 模板创建 SQL Admin 或 Azure AD Admin。更多详情请参考herehere

所以如果你想创建非管理用户,你需要编写自定义脚本。

【讨论】:

  • 正如我所怀疑的那样。感谢您提供指向另一个 SO 问题的链接 - 我在之前的搜索中没有遇到那个问题。
  • @DeanGoodman 您还有其他顾虑吗?如果您没有其他顾虑,您可以接受它作为答案吗?它可能会帮助更多的人。
【解决方案2】:

如果您想创建用户作为模板部署的一部分,您可以使用 deploymentScripts 资源来运行 TSQL 或任意脚本:

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

如果您想将其作为 Microsoft.SQL/servers 资源声明的一部分,那么您不能(正如 Jim 所说)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2020-09-14
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多