能否通过 ARM 模板在 Azure SQL 中配置非管理用户?
Can non-administrative users be provisioned in Azure SQL via an ARM template?
我找到的大多数用于部署 Azure 应用服务 + Azure SQL 数据库的示例 ARM 模板最终使用创建 Azure [=26] 时提供的管理员登录凭据为 Web 应用配置连接字符串=] 服务器(例如这个from Microsoft)。我还看到了为托管身份配置的应用服务,然后该用户通过 AAD 授予了对 Azure SQL 实例的管理访问权限。
我不想以这种方式配置生产应用程序,但我找不到更安全配置的示例。
在 Azure SQL 实例已经启动后,我找到的关于配置非管理员用户的唯一其他信息是 via SQL。这意味着我必须在我的 ARM 部署之外添加另一个步骤才能使我的系统完全正常运行。
截至撰写此问题时,运行 作为 ARM 部署的一部分的自定义 Powershell 脚本是 in preview,这可能是一条前进的道路,但并不理想。
是否可以通过 ARM 模板在 Azure SQL 中配置非管理用户,而不求助于 PowerShell?
如果你想通过arm模板在Azure SQL数据库中创建非管理用户,这是不可能的。因为 Azure ARM 模板团队只定义了 Administrators
类型,并没有在服务器中定义 user
类型或用户 属性。我们可以通过 ARM 模板创建 SQL Admin 或 Azure AD Admin。详情请参考here and here
所以如果你想创建非管理用户,你需要编写自定义脚本。
如果您想将用户创建为模板部署的一部分,您可以将部署脚本资源用于 运行 TSQL 或任何任意脚本:
如果您想将其作为 Microsoft.SQL/servers 资源声明的一部分,不,您不能(正如 Jim 提到的那样)。
我找到的大多数用于部署 Azure 应用服务 + Azure SQL 数据库的示例 ARM 模板最终使用创建 Azure [=26] 时提供的管理员登录凭据为 Web 应用配置连接字符串=] 服务器(例如这个from Microsoft)。我还看到了为托管身份配置的应用服务,然后该用户通过 AAD 授予了对 Azure SQL 实例的管理访问权限。
我不想以这种方式配置生产应用程序,但我找不到更安全配置的示例。
在 Azure SQL 实例已经启动后,我找到的关于配置非管理员用户的唯一其他信息是 via SQL。这意味着我必须在我的 ARM 部署之外添加另一个步骤才能使我的系统完全正常运行。
截至撰写此问题时,运行 作为 ARM 部署的一部分的自定义 Powershell 脚本是 in preview,这可能是一条前进的道路,但并不理想。
是否可以通过 ARM 模板在 Azure SQL 中配置非管理用户,而不求助于 PowerShell?
如果你想通过arm模板在Azure SQL数据库中创建非管理用户,这是不可能的。因为 Azure ARM 模板团队只定义了 Administrators
类型,并没有在服务器中定义 user
类型或用户 属性。我们可以通过 ARM 模板创建 SQL Admin 或 Azure AD Admin。详情请参考here and here
所以如果你想创建非管理用户,你需要编写自定义脚本。
如果您想将用户创建为模板部署的一部分,您可以将部署脚本资源用于 运行 TSQL 或任何任意脚本:
如果您想将其作为 Microsoft.SQL/servers 资源声明的一部分,不,您不能(正如 Jim 提到的那样)。