You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Blob Storage设为选定虚拟网络启用时Azure SQL Server扩展事件失效

问题:Azure SQL扩展事件在Blob Storage限制网络访问时无法运行

我有一个Azure SQL数据库,测试扩展事件(Extended Events)时,当Blob Storage的公共网络访问设为「从所有网络启用」,扩展事件可以正常工作;但将其改为「从选定虚拟网络和IP地址启用」,同时勾选「Microsoft网络路由」,并设置资源类型为Microsoft.Sql/servers且选择「当前订阅中的全部」后,扩展事件无法正常运行,报错如下:

目标“5B2DA06D-898A-43C8-9309-39BBBE93EBBD.package0.event_file”在初始化期间遇到配置错误。无法将对象添加到事件会话。(null) (Microsoft SQL Server, 错误: 25602)

解决步骤

第一步:为SQL Server分配托管标识

运行PowerShell命令为Azure SQL Server分配Azure AD托管标识:

Set-AzSqlServer -ResourceGroupName [ResourcegroupName] -ServerName [AzureSQLServerName] -AssignIdentity

执行后可在Azure AD的「企业应用」中,切换应用类型为「托管标识」,找到新创建的标识。

第二步:为托管标识授予Blob Storage容器权限

进入目标Blob Storage容器,按以下路径操作:

  • 点击「访问控制(IAM)」→「角色分配」
  • 点击「添加」→「添加角色分配」
  • 选择「存储Blob数据参与者」角色
  • 选择「托管标识」→「选择成员」,选中刚创建的标识后点击「选择」
  • 最后点击「查看 + 分配」完成权限配置

第三步:在SQL数据库中配置数据库范围凭据

在Azure SQL数据库中执行以下SQL命令,配置使用托管身份连接Blob Storage:

CREATE DATABASE SCOPED CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
WITH IDENTITY = 'Managed Identity';
GO   

执行SELECT * FROM sys.database_scoped_credentials可查看已创建的凭据。

补充说明

通过SSMS创建Azure SQL扩展事件时,官方文档仅适用于Blob Storage完全开放的场景。实际使用RBAC限制Blob Storage网络访问时,需要通过上述托管标识+RBAC权限的方式配置,而非依赖SAS密钥。

内容的提问来源于stack exchange,提问作者null_pointer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:10:27