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

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

注意

Azure Synapse工作区中以前有专用 SQL 池 (SQL DW) 和专用 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. 对于“名称”,请输入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. 选择“ 保存” 以完成角色分配。

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

  1. 在Azure 门户中,转到与专用 SQL 池关联的 SQL Server 资源, (以前是 SQL DW) 。
  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 Analytics 工作区并打开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 脚本中运行以下命令,添加 Microsoft Purview 帐户 MSI (由帐户名称表示) 在 db_datareader 专用 SQL 数据库上表示:

    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 脚本中运行以下命令,添加 Microsoft Purview 帐户 MSI (,该帐户名称) 表示为 db_datareader 无服务器 SQL 数据库:

    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 池启用Azure Synapse工作区功能中所述, (以前为 SQL DW) ,下面是专用 SQL 池 (以前 SQL DW) 所需的其他配置步骤:

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

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

  3. 对于 “允许 Azure 服务和资源访问此服务器 控制”,请选择“ 打开”。

  4. 选择“保存”

重要

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

创建并运行扫描

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

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

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

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

注意

对于集成运行时,如果使用 托管 VNet 运行时,请确保已创建所需的托管专用 Enpoints:

  • 若要扫描无服务器池,请为 Synapse 工作区创建 sqlOnDemand 子资源类型的托管专用点。
  • 若要扫描专用池,请为 Synapse 工作区创建 sql 子资源类型的托管专用点。
  • 如果同时扫描无服务器池和专用池,则创建两个托管专用终结点,并在向导中选择一个。
  1. “凭据” 下拉列表中,选择要连接到数据源中的资源的凭据。

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

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

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

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

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

  4. 选择 继续

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

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

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

查看扫描和扫描运行

查看现有扫描:

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

管理扫描

若要编辑、取消或删除扫描,请执行以下操作:

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

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

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

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

注意

  • 删除扫描不会删除从以前的扫描创建的目录资产。

使用 API 设置扫描

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

PUT https://{purview_account_name}.purview.azure.com/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 和数据: