Azure Data Share配置时无法加载SQL视图与表列表问题咨询
预设假设校验
- 假设1不成立:Azure Data Share加载SQL对象列表时,使用的是你为数据源单独配置的SQL身份凭证,而非Azure Portal当前登录账号的凭证
- 假设2不成立:SSMS登录使用的身份(多为AAD身份)与Data Share访问SQL DB使用的身份为两套独立体系,SSMS的访问权限无法覆盖Data Share的权限要求
- 假设3不成立:Azure Data Share属于公共服务范畴,即便与SQL DB同属一个资源组,也需要SQL DB防火墙放行Azure服务的访问请求,否则请求会被直接拦截
核心问题成因
- 你创建的SQL用户仅被授予
db_datareader角色,该角色仅支持读取表内数据,缺少查询系统表获取表/视图元数据的VIEW DEFINITION权限,导致Data Share无法拉取对象清单 - SQL数据库未开启Azure服务访问权限,Data Share的请求被防火墙拦截
- 添加数据集时选择了错误的身份验证方式,未关联你创建的具备权限的SQL用户
具体修复步骤
- 补充SQL用户元数据查看权限
打开SSMS连接目标SQL数据库,执行如下命令:
-- 替换占位符为你为Data Share创建的SQL用户名,视图不在dbo schema下则替换对应schema名 GRANT VIEW DEFINITION ON SCHEMA::dbo TO <DataShare专用SQL用户名>;
- 配置SQL防火墙规则
进入Azure Portal对应SQL Server资源页,依次选择「安全」-「防火墙和虚拟网络」,开启「允许Azure服务和资源访问此服务器」选项后保存配置。 - 重新走添加数据集流程
回到Data Share添加数据集页面,选择SQL Database数据源后,身份验证选择「SQL身份验证」,输入你创建的专用SQL用户名和密码,后续即可正常加载表和视图列表。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

