在 Microsoft Purview 中连接和管理 Azure Synapse Analytics 工作区

本文概述了如何注册 Azure Synapse Analytics 工作区。 它还介绍如何在 Microsoft Purview 中对 Azure Synapse Analytics 工作区进行身份验证和与其交互。 有关 Microsoft Purview 的详细信息,请阅读简介文章

注意

Azure Synapse 工作区中有专用 SQL 池(以前称为 SQL DW)和专用 SQL 池。可参考 Azure Synapse 工作区中专用 SQL 池 (SQL DW) 与专用 SQL 池之间的区别,了解这两者的细节差异。 目前,Microsoft Purview 为专用 SQL 池(以前称为 SQL DW)和专用 SQL 池提供单独的数据源:

支持的功能

元数据提取 完全扫描 增量扫描 限定范围扫描 分类 标记 访问策略 沿袭 数据共享 实时视图
No 是 - 管道

目前不支持 Azure Synapse Analytics 湖数据库。

对于外部表,Azure Synapse Analytics 当前不会捕获这些表与其原始文件的关系。

必备条件

注册

以下过程介绍如何使用 Microsoft Purview 治理门户在 Microsoft Purview 中注册 Azure Synapse Analytics 工作区。

只有在 Azure Synapse Analytics 工作区中至少具有数据读取器角色并且同时也是 Microsoft Purview 中的数据源管理员的用户才能注册 Azure Synapse Analytics 工作区。

  1. 打开 Microsoft Purview 治理门户并选择你的 Microsoft Purview 帐户。

    或者,转到 Azure 门户,搜索并选择 Microsoft Purview 帐户,然后选择“Microsoft Purview 治理门户”按钮。

  2. 在左侧窗格中,选择“源”。

  3. 选择“注册” 。

  4. 在“注册源”下,选择“Azure Synapse Analytics(多个)” 。

  5. 选择“继续”。

    Microsoft Purview 中一系列源的屏幕截图,包括 Azure Synapse Analytics。

  6. 在“注册源(Azure Synapse Analytics)”页面上,执行以下操作:

    1. 对于“名称”,输入数据目录中列出的数据源的名称。

    2. (可选)对于“Azure 订阅”,选择要筛选到的订阅。

    3. 对于“工作区名称”,选择你正在使用的工作区。

      系统会根据工作区选择自动填充 SQL 终结点的框。

    4. 从列表中选择连接。

    5. 选择“注册”以完成数据源的注册。

    用于输入有关 Azure Synapse 源的详细信息的页面的屏幕截图。

扫描

使用以下步骤扫描 Azure Synapse Analytics 工作区,以自动识别资产并对数据进行分类。 若要大致了解有关扫描的更多信息,请参阅 Microsoft Purview 中的扫描和引入

  1. 设置用于枚举专用无服务器资源的身份验证。 通过此步骤,Microsoft Purview 能够枚举工作区资源并执行扫描。
  2. 应用权限以扫描工作区的内容
  3. 确认你的网络已设置为允许访问 Microsoft Purview

枚举身份验证

使用以下过程设置身份验证。 你必须是所有者或用户访问管理员才能添加指定的角色。

用于枚举专用 SQL 数据库资源的身份验证

  1. 在 Azure 门户中,转到 Azure Synapse Analytics 工作区资源。
  2. 在左侧窗格中,选择 �“访问控制(IAM)”。
  3. 选择“添加”按钮。
  4. 设置“读取者”角色,并输入 Microsoft Purview 帐户名称(表示其托管服务标识 (MSI))。
  5. 选择“保存”完成角色分配。

如果想要扫描专用 SQL 池(以前称为 SQL DW),而该池启用了 Azure Synapse 工作区功能,如为专用 SQL 池(以前称为 SQL DW)启用 Azure Synapse 工作区功能,下面是专用 SQL 池(以前称为 SQL DW)所需的其他配置步骤:

  1. 在 Azure 门户中,转到与专用 SQL 池(以前称为 SQL DW)关联的 SQL Server 资源。
  2. 在左侧窗格中,选择 �“访问控制(IAM)”。
  3. 选择“添加”按钮。
  4. 设置“读取者”角色,并输入 Microsoft Purview 帐户名称(表示其托管服务标识 (MSI))。
  5. 选择“保存”完成角色分配。

注意

如果计划注册和扫描 Microsoft Purview 帐户中的多个 Azure Synapse Analytics 工作区,还可以从更高级别(例如资源组或订阅)分配角色。

用于枚举无服务器 SQL 数据库资源的身份验证

你需要在三个地方设置身份验证以允许 Microsoft Purview 枚举你的无服务器 SQL 数据库资源。

为 Azure Synapse Analytics 工作区设置身份验证:

  1. 在 Azure 门户中,转到 Azure Synapse Analytics 工作区资源。
  2. 在左侧窗格中,选择“访问控制(IAM)”。
  3. 选择“添加”按钮。
  4. 设置“读取者”角色,并输入 Microsoft Purview 帐户名称(表示其 MSI)。
  5. 选择“保存”完成角色分配。

设置存储帐户的身份验证:

  1. 在 Azure 门户中,转到包含与 Azure Synapse Analytics 关联的存储帐户的资源组或订阅。
  2. 在左侧窗格中,选择“访问控制(IAM)”。
  3. 选择“添加”按钮。
  4. 设置“存储 Blob 数据读取者”角色,并在“选择”输入框中输入 Microsoft Purview 帐户名称(表示其 MSI)。
  5. 选择“保存”完成角色分配。

为 Azure Synapse Analytics 无服务器数据库设置身份验证:

  1. 转到 Azure Synapse Analyticse 工作区并打开 Synapse Studio。

  2. 在左窗格中,选择“数据”。

  3. 选择其中一个数据库旁边的省略号 (...),然后启动新的 SQL 脚本。

  4. 在 SQL 脚本中运行以下命令,以在无服务器 SQL 数据库上添加 Microsoft Purview 帐户 MSI(由帐户名称表示):

    CREATE LOGIN [PurviewAccountName] FROM EXTERNAL PROVIDER;
    

应用权限以扫描工作区的内容

必须在要从 Azure Synapse Analytics 工作区注册和扫描的每个 SQL 数据库上都设置身份验证。 从以下方案中选择应用权限的步骤。

重要

无服务器数据库的以下步骤适用于复制的数据库。 在 Azure Synapse Analytics 中,从 Spark 数据库复制的无服务器数据库当前是只读的。 有关详细信息,请参阅复制的数据库不允许操作

将托管标识用于专用 SQL 数据库

重要

如果使用自承载集成运行时连接到专用网络上的资源,则托管标识将不起作用。 需要使用服务主体身份验证或 SQL 身份验证。

若要运行以下过程中的命令,必须对工作区具有 Azure Synapse 管理员身份。 有关 Azure Synapse Analytics 权限的详细信息,请参阅为 Azure Synapse Analytics 工作区设置访问控制

  1. 转到 Azure Synapse Analytics 工作区。

  2. 转到“数据”部分,然后查找其中一个专用 SQL 数据库。

  3. 选择数据库名称旁边的省略号 (...),然后启动新的 SQL 脚本。

  4. 在 SQL 脚本中运行以下命令,以在专用 SQL 数据库上以 db_datareader 身份添加 Microsoft Purview 帐户 MSI(由帐户名称表示):

    CREATE USER [PurviewAccountName] FROM EXTERNAL PROVIDER
    GO
    
    EXEC sp_addrolemember 'db_datareader', [PurviewAccountName]
    GO
    
  5. 在 SQL 脚本中运行以下命令,以验证角色的添加:

    SELECT p.name AS UserName, r.name AS RoleName
    FROM sys.database_principals p
    LEFT JOIN sys.database_role_members rm ON p.principal_id = rm.member_principal_id
    LEFT JOIN sys.database_principals r ON rm.role_principal_id = r.principal_id
    WHERE p.authentication_type_desc = 'EXTERNAL'
    ORDER BY p.name;
    

对要扫描的每个数据库执行相同的步骤。

将托管标识用于无服务器 SQL 数据库

  1. 转到 Azure Synapse Analytics 工作区。

  2. 转到“数据”部分,选择某个 SQL 数据库。

  3. 选择数据库名称旁边的省略号 (...),然后启动新的 SQL 脚本。

  4. 在 SQL 脚本中运行以下命令,以在无服务器 SQL 数据库上以 db_datareader 身份添加 Microsoft Purview 帐户 MSI(由帐户名称表示):

    CREATE USER [PurviewAccountName] FOR LOGIN [PurviewAccountName];
    ALTER ROLE db_datareader ADD MEMBER [PurviewAccountName]; 
    
  5. 在 SQL 脚本中运行以下命令,以验证角色的添加:

    SELECT p.name AS UserName, r.name AS RoleName
    FROM sys.database_principals p
    LEFT JOIN sys.database_role_members rm ON p.principal_id = rm.member_principal_id
    LEFT JOIN sys.database_principals r ON rm.role_principal_id = r.principal_id
    WHERE p.authentication_type_desc = 'EXTERNAL'
    ORDER BY p.name;
    

对要扫描的每个数据库执行相同的步骤。

授予对外部表使用凭据的权限

如果 Azure Synapse Analytics 工作区有任何外部表,你必须为 Microsoft Purview 托管标识授予对外部表范围凭据的“引用”权限。 通过“引用”权限,Microsoft Purview 可以读取外部表中的数据。

  1. 在 SQL 脚本中运行以下命令,以获取数据库范围凭据的列表:

    Select name, credential_identity
    from sys.database_scoped_credentials;
    
  2. 若要授予对数据库范围凭据的访问权限,请运行以下命令。 将 scoped_credential 替换为数据库范围凭据的名称。

    GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[scoped_credential] TO [PurviewAccountName];
    
  3. 若要验证权限分配,请在 SQL 脚本中运行以下命令:

    SELECT dp.permission_name, dp.grantee_principal_id, p.name AS grantee_principal_name
    FROM sys.database_permissions AS dp
    JOIN sys.database_principals AS p ON dp.grantee_principal_id = p.principal_id
    JOIN sys.database_scoped_credentials AS c ON dp.major_id = c.credential_id;
    

为 Azure Synapse Analytics 工作区设置防火墙访问

  1. 在 Azure 门户中,转到 Azure Synapse Analytics 工作区。

  2. 在左窗格中,选择“网络”。

  3. 对于“允许 Azure 服务和资源访问此工作区”控件,选择“启用” 。

  4. 选择“保存”。

如果想要扫描专用 SQL 池(以前称为 SQL DW),而该池启用了 Azure Synapse 工作区功能,如为专用 SQL 池(以前称为 SQL DW)启用 Azure Synapse 工作区功能,下面是专用 SQL 池(以前称为 SQL DW)所需的其他配置步骤:

  1. 在 Azure 门户中,转到与专用 SQL 池(以前称为 SQL DW)关联的 SQL Server 资源。

  2. 在左窗格中,选择“网络”。

  3. 对于“允许 Azure 服务和资源访问此服务器”控件,选择“启用”。

  4. 选择“保存”。

重要

如果无法在 Azure Synapse Analytics 工作区上启用“允许 Azure 服务和资源访问此工作区”,则在 Microsoft Purview 治理门户中设置扫描时,将出现无服务器数据库枚举失败。 在这种情况下,可以选择“手动输入”选项来指定要扫描的数据库名称,然后继续或使用 API 设置扫描

创建并运行扫描

  1. Microsoft Purview 治理门户的左侧窗格中,选择“数据映射”。

  2. 选择所注册的数据源。

  3. 选择“查看详细信息”,然后选择“新建扫描” 。 此外,可以选择源磁贴上的“扫描快速操作”图标。

  4. 在“扫描”详细信息窗格的“名称”框中,输入此扫描的名称 。

  5. 在“凭据”下拉列表中,选择凭据以连接到数据源中的资源。

  6. 对于“数据库选择方法”,选择“从 Synapse 工作区”或“手动输入”。 默认情况下,Microsoft Purview 会尝试枚举工作区下的数据库,你可以选择要扫描的数据库。

    Azure Synapse 源扫描的详细信息窗格的屏幕截图。

    如果遇到 Microsoft Purview 无法加载无服务器数据库的错误,你可以选择“手动输入”以指定数据库类型(专用或无服务器)和相应的数据库名称。

    设置扫描时手动输入数据库名称的选择的屏幕截图。

  7. 选择“测试连接”以验证设置。 如果收到任何错误,请在报告页上将鼠标悬停在连接状态上以查看详细信息。

  8. 选择“继续”。

  9. 选择“Azure Synapse SQL”类型的“扫描规则集” 。 还可以创建内联扫描规则集。

  10. 选择扫描触发器。 可以设置一个计划或运行一次扫描。

  11. 查看扫描,然后选择“保存”以完成设置。

查看扫描和扫描运行情况

若要查看现有扫描,请执行以下操作:

  1. 转到 Microsoft Purview 门户。 在左窗格中,选择“数据映射”。
  2. 选择数据源。 可以在“最近使用的扫描”下查看该数据源上的现有扫描列表,或者可以在“扫描”选项卡上查看所有扫描。
  3. 选择要查看结果的扫描。 窗格会显示先前的所有扫描运行,以及每次扫描运行的状态和指标。
  4. 选择运行 ID 以检查扫描运行详细信息

管理扫描

若要编辑、取消或删除扫描:

  1. 转到 Microsoft Purview 门户。 在左窗格中,选择“数据映射”。

  2. 选择数据源。 可以在“最近使用的扫描”下查看该数据源上的现有扫描列表,或者可以在“扫描”选项卡上查看所有扫描。

  3. 选择要管理的扫描。 然后,可以:

    • 通过选择“编辑扫描”来编辑扫描。
    • 通过选择“取消扫描运行”来取消正在进行的扫描。
    • 通过选择“删除扫描”来删除扫描。

注意

  • 删除扫描不会删除以前扫描中创建的类别资产。

使用 API 设置扫描

下面是使用 Microsoft Purview REST API 为无服务器数据库创建扫描的示例。 将大括号中的占位符 ({}) 替换为实际设置。 有关详细信息,请参阅扫描 - 创建或更新

PUT https://{purview_account_name}.purview.azure.cn/scan/datasources/<data_source_name>/scans/{scan_name}?api-version=2022-02-01-preview

在以下代码中,collection_id 不是集合的易记名称,而是由五个字符组成的 ID。 对于根集合,collection_id 是该集合的名称。 对于所有子集合,而是可在以下位置之一找到的 ID:

  • Microsoft Purview 治理门户中的 URL。 选择集合,然后检查 URL,找到显示了 collection= 的位置。 这是您的 ID。 在以下示例中,“投资”集合的 ID 为 50h55c

    URL 中集合 ID 的屏幕截图。

  • 可以列出根集合的子集合名称以列出集合,然后使用名称而不是易记名称。

{
    "properties":{
        "resourceTypes":{
            "AzureSynapseServerlessSql":{
                "scanRulesetName":"AzureSynapseSQL",
                "scanRulesetType":"System",
                "resourceNameFilter":{
                    "resources":[ "{serverless_database_name_1}", "{serverless_database_name_2}", ...]
                }
            }
        },
        "credential":{
            "referenceName":"{credential_name}",
            "credentialType":"SqlAuth | ServicePrincipal | ManagedIdentity (if UAMI authentication)"
        },
        "collection":{
            "referenceName":"{collection_id}",
            "type":"CollectionReference"
        },
        "connectedVia":{
            "referenceName":"{integration_runtime_name}",
            "integrationRuntimeType":"SelfHosted (if self-hosted IR) | Managed (if VNet IR)"
        }
    },
    "kind":"AzureSynapseWorkspaceCredential | AzureSynapseWorkspaceMsi (if system-assigned managed identity authentication)"
}

若要安排扫描,请在创建扫描后为其创建触发器。 有关详细信息,请参阅触发器 - 创建触发器

疑难解答

如果扫描时遇到任何问题:

后续步骤

现在你已经注册了源,请按照以下指南来详细了解 Microsoft Purview 和你的数据: