如何为Azure SQL Server上新创建的数据库自动分配LTR策略
实现Azure SQL数据库自动应用默认长期保留(LTR)策略
可以实现自动给新创建的数据库应用默认LTR策略,无需手动操作,主要有两种可靠方案:
方法一:使用Azure Policy(推荐)
- 直接利用内置策略或自定义策略,强制SQL数据库应用指定LTR设置。内置策略中已有“SQL数据库应该配置长期保留策略”这类现成选项,启用即可;若需自定义保留周期,可编写专属策略规则。
- 触发逻辑:新数据库创建时,Azure Policy会自动检测其LTR配置状态,若不符合要求,将自动修正(需开启自动修正功能)或阻止创建(依配置的策略效果而定)。
- 配置要点:
- 进入Azure门户的「策略」服务,找到对应SQL数据库的LTR相关策略定义。
- 将策略分配到目标SQL服务器所在的资源组或订阅范围。
- 开启「自动修正」,并配置具备足够权限的托管标识(需拥有修改SQL数据库LTR策略的权限)。
方法二:使用Azure Event Grid + Azure Function
- 原理:通过Event Grid监听SQL数据库的创建事件,触发Azure Function自动执行LTR策略配置脚本。
- 步骤:
- 在Azure Event Grid中创建事件订阅,选择「SQL数据库」作为事件源,监听
Microsoft.Sql/databases/write事件。 - 创建Azure Function,编写PowerShell或Python脚本,调用Azure SDK或CLI命令为新创建的数据库设置LTR策略。
- 将Function的触发方式配置为Event Grid触发器,确保事件能正确传递并触发脚本执行。
- 在Azure Event Grid中创建事件订阅,选择「SQL数据库」作为事件源,监听
- 优势:适合需要复杂自定义逻辑的场景,比如根据数据库名称前缀、所属环境动态调整LTR策略。
注意事项
- 使用Azure Policy时,要确保策略范围正确覆盖所有需要自动配置的SQL服务器,避免遗漏。
- 自动修正功能所需权限:托管标识需拥有
Microsoft.Sql/servers/databases/backupLongTermRetentionPolicies/write权限。 - 对于已存在的未配置LTR的数据库,可先通过批量脚本完成初始配置,再启用自动策略确保新数据库合规。
内容的提问来源于stack exchange,提问作者TBedient
相关产品推荐
相关产品推荐

