次の方法で共有


Microsoft Purview で Azure Synapse Analytics ワークスペースに接続して管理する

この記事では、Azure Synapse Analytics ワークスペースを登録する方法について説明します。 また、Microsoft Purview で Azure Synapse Analytics ワークスペースを認証して操作する方法についても説明します。 Microsoft Purview の詳細については、こちらをご覧ください。

注:

専用 SQL プール (旧称 SQL DW) と専用 SQL プールは、Azure Synapse ワークスペースにあります。 2 つの違いの詳細については、「Azure Synapse ワークスペースの専用 SQL プール (SQL DW) と専用 SQL プールの違いは何ですか」を参照してください。 現在、Microsoft Purview では、専用 SQL プール (旧称 SQL DW) と専用 SQL プールに個別のデータ ソースが用意されています。

サポートされている機能

スキャン機能

メタデータ抽出 フル スキャン 増分スキャン スコープスキャン
はい いいえ

Azure Synapse Analytics Lake データベースは現在サポートされていません。 これらのデータベースのスキャンされた資産に不整合が生じる場合があります。

外部テーブルの場合、Azure Synapse Analytics では現在、それらのテーブルと元のファイルのリレーションシップはキャプチャされません。

その他の機能

分類秘密度ラベルポリシーデータ系列ライブ ビューについては、サポートされている機能の一覧を参照してください。

前提条件

登録

次の手順では、Microsoft Purview ガバナンス ポータルを使用して、Azure Synapse Analytics ワークスペースを Microsoft Purview に登録する方法について説明します。

Synapse Analytics ワークスペースを登録するには、少なくとも Synapse Analytics ワークスペースのデータ 閲覧者ロールが必要であり、Microsoft Purview のデータ ソース管理者である必要があります。

  1. Microsoft Purview ガバナンス ポータルを開き、Microsoft Purview アカウントを選択します。

    または、Azure portalに移動し、Microsoft Purview アカウントを検索して選択し、[Microsoft Purview ガバナンス ポータル] ボタンを選択します。

  2. 左側のウィンドウで、[ソース] を選択 します

  3. [登録] を選択します。

  4. [ソースの登録] で、[Azure Synapse Analytics (複数)] を選択します。

  5. [続行] を選択します。

    Azure Synapse Analytics を含む Microsoft Purview のソースの選択のスクリーンショット。

  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 portalで、Azure Synapse Analytics ワークスペース リソースに移動します。
  2. 左側のウィンドウで、[Access Control (IAM)] を選択します。
  3. [追加] ボタンを選択します。
  4. 閲覧者ロールを設定し、マネージド サービス ID (MSI) を表す Microsoft Purview アカウント名を入力します。
  5. [ 保存] を 選択して、ロールの割り当てを完了します。

専用 SQL プール (旧称 SQL DW) のAzure Synapse ワークスペース機能を有効にするに関するページに記載されているように、Azure Synapse Analytics ワークスペース機能を有効にした専用 SQL プール (旧称 SQL DW) をスキャンする場合は、専用 SQL プール (旧称 SQL DW) に対して次の追加の構成手順に従います。

  1. Azure portalで、専用 SQL プール (旧称 SQL DW) に関連付けられているSQL Server リソースに移動します。
  2. 左側のウィンドウで、[Access Control (IAM)] を選択します。
  3. [追加] ボタンを選択します。
  4. 閲覧者ロールを設定し、マネージド サービス ID (MSI) を表す Microsoft Purview アカウント名を入力します。
  5. [ 保存] を 選択して、ロールの割り当てを完了します。

注:

Microsoft Purview アカウントで複数のAzure Synapse Analytics ワークスペースを登録してスキャンする予定の場合は、リソース グループやサブスクリプションなど、より高いレベルからロールを割り当てることもできます。

サーバーレス SQL Database リソースを列挙するための認証

Microsoft Purview がサーバーレス SQL Database リソースを列挙できるように、認証を 3 か所に設定します。

Azure Synapse Analytics ワークスペースの認証を設定するには:

  1. Azure portalで、Azure Synapse Analytics ワークスペース リソースに移動します。
  2. 左側のウィンドウで、[Access Control (IAM)] を選択します。
  3. [追加] ボタンを選択します。
  4. 閲覧者ロールを設定し、MSI を表す Microsoft Purview アカウント名を入力します。
  5. [ 保存] を 選択して、ロールの割り当てを完了します。

ストレージ アカウントの認証を設定するには:

  1. Azure portalで、Azure Synapse Analytics ワークスペースに関連付けられているストレージ アカウントを含むリソース グループまたはサブスクリプションに移動します。
  2. 左側のウィンドウで、[Access Control (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 Databaseで認証を設定する必要があります。 アクセス許可を適用する手順については、次のシナリオを参照してください。

重要

サーバーレス データベースの次の手順 、レプリケートされたデータベースには適用されません。 Azure Synapse Analytics では、Spark データベースからレプリケートされるサーバーレス データベースは現在、読み取り専用です。 詳細については、「 レプリケートされたデータベースに対する操作が許可されていません」を参照してください。

専用 SQL データベースにマネージド ID を使用する

重要

セルフホステッド統合ランタイムを使用してプライベート ネットワーク上のリソースに接続する場合、マネージド ID は機能しません。 サービス プリンシパル認証または SQL 認証を使用する必要があります。

次の手順でコマンドを実行するには、ワークスペースのAzure Synapse管理者である必要があります。 Azure Synapse Analytics アクセス許可の詳細については、「Azure Synapse Analytics ワークスペースのアクセス制御を設定する」を参照してください。

  1. Azure Synapse Analytics ワークスペースに移動します。

  2. [ データ ] セクションに移動し、専用 SQL データベースのいずれかを探します。

  3. データベース名の横にある省略記号 (...) を選択し、新しい SQL スクリプトを開始します。

  4. SQL スクリプトで次のコマンドを実行して、専用 SQL データベースに Microsoft Purview アカウント MSI (アカウント名で表される) を db_datareader として追加します。

    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 データベースにマネージド ID を使用する

  1. Azure Synapse Analytics ワークスペースに移動します。

  2. [ データ ] セクションに移動し、いずれかの SQL データベースを選択します。

  3. データベース名の横にある省略記号 (...) を選択し、新しい SQL スクリプトを開始します。

  4. SQL スクリプトで次のコマンドを実行して、Microsoft Purview アカウント MSI (アカウント名で表される) をサーバーレス SQL データベースに db_datareader として追加します。

    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;
    

スキャンするデータベースごとに同じ手順に従います。

外部テーブルに資格情報を使用するアクセス許可を付与する

Synapse Analytics ワークスペースに外部テーブルがある場合は、外部テーブルのスコープ資格情報に対する Microsoft Purview マネージド ID 参照アクセス許可を付与する必要があります。 [参照] アクセス許可を使用すると、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 portalで、[Azure Synapse Analytics] ワークスペースに移動します。

  2. 左側のウィンドウで、[ ネットワーク] を選択します。

  3. [Azure サービスとリソースがこのワークスペースにアクセスできるようにする] で、[オン] を選択します。

  4. [保存] を選択します。

専用 SQL プール (旧称 SQL DW) のAzure Synapse ワークスペース機能を有効にするに関するページに記載されているように、Azure Synapse Analytics ワークスペース機能を有効にした専用 SQL プール (旧称 SQL DW) をスキャンする場合は、専用 SQL プール (旧称 SQL DW) に対して次の追加の構成手順に従います。

  1. Azure portalで、専用 SQL プール (旧称 SQL DW) に関連付けられているSQL Server リソースに移動します。

  2. 左側のウィンドウで、[ ネットワーク] を選択します。

  3. [サービスとリソースAzureこのサーバーへのアクセスを許可する] で、[オン] を選択します

  4. [保存] を選択します。

重要

Azure Synapse Analytics ワークスペースで [Azure サービスとリソースにこのワークスペースへのアクセスを許可する] を有効にできない場合、Microsoft Purview ガバナンス ポータルでスキャンを設定すると、サーバーレス データベース列挙エラーが発生します。 この場合は、[ 手動で入力 ] オプションを選択して、スキャンするデータベース名を指定し、 API を使用してスキャンを続行または設定できます。

スキャンを作成して実行する

  1. Microsoft Purview ガバナンス ポータルの左側のウィンドウで、[データ マップ] を選択します。

  2. 登録したデータ ソースを選択します。

  3. [ 詳細の表示] を選択し、[ 新しいスキャン] を選択します。 または、ソース タイルの [クイック アクションのスキャン ] アイコンを選択することもできます。

  4. [ スキャン の詳細] ウィンドウの [名前 ] ボックスに、スキャンの名前を入力します。

注:

統合ランタイムの場合、 Managed VNet Runtime を使用している場合は、必要なマネージド プライベート エンドポイントを作成してください。

  • サーバーレス プールをスキャンするには、Synapse ワークスペースの sqlOnDemand サブリソースの種類のマネージド プライベート エンドポイントを作成します。
  • 専用プールをスキャンするには、Synapse ワークスペースの sql サブリソースの種類のマネージド プライベート エンドポイントを作成します。
  • サーバーレス プールと専用プールの両方をスキャンする場合は、マネージド プライベート エンドポイントの両方を作成する必要があります。ウィザードで 1 つを選択します。
  1. [ 資格情報 ] ドロップダウン リストで、データ ソース内のリソースに接続する資格情報を選択します。

  2. [ データベースの選択方法] で、[ Synapse ワークスペースから ] または [ 手動で入力] を選択します。 既定では、Microsoft Purview はワークスペースの下にあるデータベースの列挙を試み、スキャンするデータベースを選択できます。

    Azure Synapse ソース スキャンの詳細ウィンドウのスクリーンショット。

    Microsoft Purview がサーバーレス データベースの読み込みに失敗したことを示すエラーが発生した場合は、[Enter] を 手動で 選択して、データベースの種類 (専用またはサーバーレス) と対応するデータベース名を指定できます。

    スキャンを設定するときにデータベース名を手動で入力するための選択のスクリーンショット。

  3. [ 接続のテスト] を選択して、設定を検証します。 エラーが発生した場合は、レポート ページで接続状態にマウス ポインターを合わせて詳細を表示します。

  4. [続行] を選択します。

  5. [SQL Azure Synapse種類のスキャン ルール セット] を選択します。 スキャン ルール セットをインラインで作成することもできます。

  6. スキャン トリガーを選択します。 スケジュールを設定することも、スキャンを 1 回実行することもできます。

  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 はコレクションのフレンドリ名ではありません。 これは 5 文字の ID です。 ルート コレクションの場合、 collection_id はコレクションの名前です。 すべてのサブコレクションについて、次のいずれかの場所で見つけることができる ID です。

  • Microsoft Purview ガバナンス ポータルの URL。 コレクションを選択し、URL をチェックして collection=と表示される場所を見つけます。 それがあなたの ID です。 次の例では、 Investment コレクションの 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 とデータの詳細を確認します。