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

本文概述了如何注册 Azure Synapse Analytics 工作区。 它还介绍如何在 Microsoft Purview 中对 Azure Synapse Analytics 工作区进行身份验证和与其交互。 详细了解 Microsoft Purview

注意

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

支持的功能

扫描功能

元数据提取 完全扫描 增量扫描 限定范围的扫描
是的 是的 是的

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. 对于 Name,请输入要列在 Microsoft Purview 统一目录中的数据源的名称。

    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. 选择“保存”完成角色分配。

如果要扫描已启用 Azure Synapse 工作区功能的专用 SQL 池(以前称为 SQL DW),请参考 为专用 SQL 池(以前称为 SQL DW)启用 Azure Synapse 工作区功能中的说明,以下是所需的额外配置步骤:

  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. 选择“保存”。

如果要扫描已启用 Azure Synapse 工作区功能的专用 SQL 池(以前称为 SQL DW),请参考 为专用 SQL 池(以前称为 SQL DW)启用 Azure Synapse 工作区功能中的说明,以下是所需的额外配置步骤:

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

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

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

  4. 选择“保存”。

重要

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

创建并运行扫描

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

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

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

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

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

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

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

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

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

  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 和你的数据: