Azure Purview扫描Azure SQL托管实例失败,请求排查解决
问题排查与解决建议
核心原因分析
报错明确指出需要访问master数据库来枚举实例内的数据库列表——哪怕你仅指定扫描单个数据库,Purview在扫描初始化阶段也必须先连接master库获取元数据,当前你的托管标识myPurview缺少该库的访问权限,这是扫描失败的关键。
具体排查点及修复步骤
1. 补全master库的AAD登录权限
- 用SSMS连接到SQL托管实例,切换到
master数据库 - 执行以下SQL确认
myPurview是否已在master库创建登录:SELECT name FROM sys.server_principals WHERE type = 'E' AND name = 'myPurview'; - 若结果为空,需创建AAD登录并授予必要权限:
-- 创建托管标识的AAD登录 CREATE LOGIN [myPurview] FROM EXTERNAL PROVIDER; -- 授予枚举数据库的最低权限 GRANT VIEW ANY DATABASE TO [myPurview];
2. 验证目标库的用户映射正确性
- 切换到
AdventureWorksLT2019数据库,执行SQL确认用户与登录的映射关系:SELECT name FROM sys.database_principals WHERE type = 'E' AND name = 'myPurview'; - 若不存在对应用户,需创建并关联登录:
CREATE USER [myPurview] FROM LOGIN [myPurview]; -- 确保已加入db_datareader角色(可重复执行验证) EXEC sp_addrolemember 'db_datareader', 'myPurview';
3. 检查扫描配置细节
- 在Purview扫描设置中,确认已选择特定数据库并准确填写
AdventureWorksLT2019,避免误选“所有数据库”选项(除非你需要扫描全部且已配置对应权限)
4. 确认公共端点访问规则
- 检查SQL托管实例的公共端点防火墙规则,确保允许Purview托管标识所在的网络访问
- 确认实例的
Allow public endpoint access已设置为Yes
验证操作
完成配置后,可先在SSMS中使用myPurview托管标识连接master库,确认能正常访问并看到数据库列表,再重新触发Purview扫描。
内容的提问来源于stack exchange,提问作者nam
相关产品推荐
相关产品推荐

