リリースノート
1.1.0
Added
- 取得したデータから引用符を削除する機能を追加しました。
Changed
- ロガーとツールチップを更新しました。
1.0.1
Fixed
- CSVパスに関するプラグインの検証を修正しました。
- 健全性確認ステップレベルの検証を修正しました。
1.0.0
Added
- 初回リリース。
このドキュメントでは、Microsoft SQL EDM プラグイン v1.1.0 の設定方法について説明します。Netskope Cloud Exchangeプラットフォームの Exact Data Match モジュールを使用します。 このプラグインは、設定された Microsoft SQL サーバーから生データを取得して EDM ハッシュを生成するために使用されます。
前提条件
設定を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインと完全一致データ一致プラグインが既に設定されています。
- Microsoft SQL Server のセットアップ
- データを取得するための読み取り専用 ( Select ) アクセス権を持つ Microsoft SQL Server データベース ユーザー。
Microsoft SQL Server EDMプラグインのサポート
このプラグインは、設定された Microsoft SQL サーバーから生データを取得して EDM ハッシュを生成するために使用されます。 このプラグインは、高度なデータサニタイズ、正規化、およびハッシュ生成機能をサポートしており、データの品質とセキュリティコンプライアンスを確保します。
| 特徴 | サポート |
|---|---|
| Pull | はい |
| Push | いいえ |
Microsoft SQLデータベースのアクセス許可
| 権限の種類 | Requirement |
|---|---|
| ユーザー 読む 記載データベースへのアクセス | Required |
| Microsoft SQL データベースを読む アクセス許可 | Required |
| データベースポートアクセス | Required |
必要な権限
- データベース ユーザーは、指定されたデータベースに対する読み取り権限を持っている必要があります。
- 設定されたポートでMicrosoft SQLサーバーへのネットワーク接続が確立されている。
- Cloud Exchange上に、一時ファイル処理のための十分なディスク容量を確保してください。
APIの詳細
List of Libraries Used to Fetch Database Records
このプラグイン PythonライブラリとMicrosoft SQLドライバを使用して、MSSQLデータベースへの安全な接続を確立し、SQLクエリを実行してテーブルのデータを転送します。
ライブラリ:sqlalchemy、pyodbc、unixodbc(システムパッケージ)
使用方法: SQLAlchemy は、効率的で高性能なデータベース アクセスを実現するために設計された、よく知られたエンタープライズ レベルの永続化パターンの完全なスイートを提供する Python SQL ツールキットであり、SQL クエリを実行するためのシンプルで Python らしいドメイン言語に適合されています。PyODBC Connector/Pythonを使用すると、PythonプログラムからMicrosoft SQLデータベースにアクセスできます。
Create Client Connection
from sqlalchemy import create_engine
eng = create_engine(
connection_string, connect_args={"connect_timeout": CONNECTION_TIMEOUT,”TrustServerCertificate”:”yes”}
)
Execute SQL query with Read-Only Session
with eng.connect() as connection:
# used to stop user from executing any database modification query.
query = text(config["query"])
result = connection.execute(query)
Generate CSV File from fetched records in batches
while True: rows = result.fetchmany(BATCH_SIZE) if not rows: break # No more rows to fetch self.store_data_to_csv(rows, csv_path)
パフォーマンスマトリックス
以下は、約 100 万行 (25 列、各列は約 50 文字の長さの文字列、1.3) の取得とサニタイズのために実施されたパフォーマンス測定です。以下の仕様を持つ大規模CEインスタンス上のデータベーステーブルからのデータ(GBサイズ、平均列一意性:約96%、平均行一意性:約96%)
| デスクリプション | 仕様 |
|---|---|
| スタックの詳細 | サイズ:大 RAM:32 GB CPU:16コア |
| マイクロソフトSQLから取得したデータベーステーブルデータ(サニタイズなし) | 約5.7K行/秒 |
ワークフロー
- Microsoft SQL サーバー上に「読む」権限を持つユーザーを作成します。
- Microsoft SQL EDMプラグインを設定します。
- Microsoft SQL EDMプラグインとEDM Netskopeプラグイン間の共有を設定します。
- Microsoft SQLプラグインを検証します。
動画を見る
再生ボタンをクリックして動画をご覧ください。
Microsoft SQL Server を構成する
ユーザーを作成する
Microsoft SQLデータベースにユーザーを作成するには、以下の手順に従ってください。
-
Microsoft SQL Serverインスタンスにログインし、SQLターミナルを開きます。
-
以下のコマンドを実行するか、この ガイド に従って必要な読むのみ(Select)権限を持つユーザーを作成してください。
-
Create Login:
- SQL Server認証の場合:
Create login <YourLoginName> with password=<YourPassword>; - Windows認証の場合:
CREATE LOGIN [<DomainName>\<YourLoginName>] FROM WINDOWS;
- SQL Server認証の場合:
-
ターゲットデータベースに切り替えてユーザーを作成します。
USE <YourDatabaseName>; CREATE USER <YourUserName> FOR LOGIN <YourLoginName>;
-
ユーザーをdb_datareaderロールに追加して、読み取り専用(SELECT)権限を付与します。
ALTER ROLE db_datareader ADD MEMBER <YourUserName>;
注記
- Replace <YourLoginName> and <YourPassword> with your actual login name and password.
- <YourUserName> を、データベースユーザーに割り当てたい名前に置き換えてください。
- Replace <YourDatabaseName> with the actual name of the database.
- Windows認証の場合、 正しい形式:[ドメイン\ユーザー名]。
-
Microsoft SQL EDMプラグインの設定
-
Cloud Exchange で、 Settings > Plugin Storeに移動します。
-
Microsoft SQL v1.1.0 (EDM ) プラグインを検索して選択します。

-
基本情報を入力してください:
-
Configuration Name: プラグインにふさわしい名前を入力してください。
指定した構成名はNetskopeテナントと共有する生成されたハッシュファイルの名前になります。 後でこの設定を削除して同じ名前で新しい設定を作成する場合、ハッシュファイルがNetskopeテナントに既に存在している可能性があることに注意してください。このような場合、ハッシュファイルをテナントにプッシュしようとすると、同じ名前のファイルが既に存在するため、エラーが発生します。 この問題を回避するには、一意の名前を使用することを検討してください。 -
Sync Interval: このプラグインソースからデータを取得する間隔。デフォルト値は12時間です。(デフォルト:12時間)

-
-
Next をクリックして、設定パラメータを入力してください。
-
Server IP/Hostname: Microsoft SQL Serverが配置されているIPアドレスまたはホスト名。
-
Username: サーバーにアクセスするためのMicrosoft SQLデータベースのユーザー名。有効なユーザー名であり、アクセス権限のみが付与されていることを確認してください。
-
Password: 指定されたデータベースユーザー名に関連付けられたパスワード。
-
Database Name: データを取得するMicrosoft SQLデータベース名。データベース名は大文字と小文字を区別するため、データベース名が正しく入力されていることを確認してください。
-
Port: Microsoft SQLデータベースが稼働しているTCPポート番号を入力してください。
-
Query: EDMハッシュを生成するためにデータを取得する、Microsoft SQLデータベースクエリ。クエリが検証済みであり、かつ「~のみ」であることを確認してください。
-
Remove Quotes: データファイルでフィールドが二重引用符で囲まれている場合、特に値にカンマが含まれている場合は、これを有効にしてください。引用符で囲まれたフィールドは、単一の列として解析されます。引用符の位置が不適切だと、行がスキップされる可能性があります。データベースからエクスポートされたCSVファイルに役立ちます。
デフォルトでは、引用符は文字通りのテキストとして扱われます。CSVファイルで引用符を削除するトグルを有効にしてください。 カンマを含むフィールド("123 ABC Street, Suite 100"など)を囲むには、二重引用符を使用します。 これにより、そのフィールドが単一の列として扱われることが保証されます。このモードでは、厳密なCSVフォーマットが必須となることに注意してください。フィールドが引用符で始まる場合、閉じ引用符の後にスペースを含む任意の文字がカンマの前にあると(例:Word",)、その行はスキップされます。 -
-
Next をクリックして、ハッシュ生成およびサニタイズパラメータを入力してください。
-
サニタイズおよびハッシュ生成操作に適したオプションSelect 。
- Sanitization (Name Column): 「名前列」チェックボックスをオンにして、コンテンツをサニタイズしてください。(デフォルト:チェックなし)消毒処理では、以下の動作が行われます。
- One character: セルに文字が1つしか含まれていない場合、そのセルは無効とみなされます。
- Digits: 数字を含むセルは無効としてマークされます。
- Stopwords: リストにあるストップワードに一致するセルは無効としてマークされます(これは、[ストップワードを削除] チェックボックスがオンになっている場合にのみ機能します)。
- Non-alphanumeric characters: セルを検証するには、すべての特殊文字を削除してください。
- ハッシュ生成は2つの部分に分かれています。
- Normalization: ドロップダウンリストから値Select 、データ値を正規化してください。 (デフォルト:なし)
- Create Dictionary: ドロップダウンから値Select 、選択したフィールドの一意の値の辞書を作成します。 NetskopeテナントのDLPルールで使用できます。 (デフォルト:なし)
- Sanitization (Name Column): 「名前列」チェックボックスをオンにして、コンテンツをサニタイズしてください。(デフォルト:チェックなし)消毒処理では、以下の動作が行われます。
-
Remove Stopwords: サニタイズ処理の一環として特定のストップワードを削除する場合は、チェックマークを付けてください。(デフォルト:チェックなし)変更内容を反映させるため、該当するフィールドの「名前」列にチェックが入っていることを確認してください。
注記
- 使う 正規化パラメータで取得した結果を正規化します。 例えば、123-45-6789や123 45 6789のような番号は、123456789として扱われます。数値の正規化では、ドット、ダッシュ、スペースなどの文字は無視されます。文字列正規化は文字のケース感度を無視します。
- 「辞書の作成」オプションは、必要な場合にのみ使用してください。この操作はリソースを大量に消費し、システムパフォーマンスに影響を与える可能性があります。 最適な効率性を得るために、このオプションを慎重に選択してください。

-
-
Nextをクリックしてください。Preview Good FileまたはPreview Bad Fileをクリックして、サニタイズサンプルの出力をプレビューしてください。
プラグインをサニタイズ機能を有効にして使用している場合、追加処理が発生するためパフォーマンスが異なる場合があります。 -
Proceed without sanitization: 消毒処理を進めるには、このオプションのチェックを外してください。(デフォルト:チェック済み)
このオプションのチェックを外すと、すべてのデータがハッシュ生成の対象となります。チェックを外すと、有効なファイルの内容のみがハッシュ生成の対象となります。 -
「保存」をクリックしてください。「完全一致データ一致」>「プラグイン」ページにリダイレクトされ、設定済みのプラグインを確認できます。

Microsoft SQL 用の EDM 共有構成を構成する
共有構成は、生成された EDM ハッシュを宛先プラットフォームと共有するために使用されます。 EDMハッシュをNetskopeテナントと共有するには、共有設定を作成します。 次の手順で行います。
-
Exact Data Match > Sharingに移動してAdd Sharing Configurationをクリックしてください。

-
共有パラメータを設定します。
- Source Configuration: 設定済みのEDM Microsoft SQLプラグインSelect 。
- Destination Configuration: EDMハッシュの共有先Select 。
- Target: 値は、選択された宛先構成に応じて自動的に設定されます。

-
Saveをクリックしてください。

Microsoft SQL EDMプラグインを検証する
プルを検証する
Cloud Exchangeで構成済みのプラグインが正しく取得されたことを確認するには、 Settings > Loggingに移動してMicrosoft SQL EDMプラグインのログを検索してください。
プラグインの動作は、Cloud Exchange のLogging にあるログから確認できます。

ソースプラグインに対して共有設定が確立されている場合、そのステータスは「共有とアップロードの管理」ページで監視できます。
ステータス値は以下のとおりです。
- Scheduled: 共有設定が完了しており、プル操作とプッシュ操作が処理待ちのキューに入っていることを示します。
- Generating Hash: ハッシュの生成プロセスが開始されたことを示します。この段階では、バックグランドのフェッチ > 検証 > サニタイズ (選択した場合) > ステージングされたハッシュの生成が含まれます。
- Uploading Hash: 宛先構成へのハッシュのアップロードが開始されたことを示します。
- Upload Completed: ハッシュが宛先設定にアップロードされたことを示します。
- Checking Apply Status: この段階では、ハッシュが宛先構成に適用されている状態を確認します。
- Apply In Progress: これは、ハッシュ処理が宛先で開始され、進行中の状態であることを示しています。
- Completed: ハッシュファイルが宛先設定に正常にプッシュされたことを示します。
- Failed: アクションの最終結果の実行に失敗したことを示します。アクションは、ハッシュの生成、ハッシュのアップロード、適用ステータスの確認です。
共有EDMハッシュは、Cloud ExchangeのLogging にあるログから確認できます。

Netskopeテナントへのプッシュを検証する
Cloud ExchangeからNetskopeテナントへのEDMハッシュのプッシュを確実に行うには:
-
Netskopeのテナントにログインし、 Policies > DLPへ行ってください。

-
Edit RulesをクリックしてData Loss Preventionを選択してください。

-
On the Exact Match tab, a list of files is shown.

Microsoft SQLプラグインのトラブルシューティング
MS SQLプラグインを構成できません
Microsoft SQLプラグインの設定ができない場合、以下のいずれかの理由が考えられます。
- 間違ったクレデンシャルが提供されました。
- ユーザーに必要な権限がありません。
- ホスト名またはサーバーIPアドレスが間違っています。
- データベース名が間違っています。
What to do:
- 必ず正しいクレデンシャルを入力してください。
- ユーザーがデータベースとテーブルに必要な権限を持っていることを確認してください。
- ホスト名/サーバーIPが正しいことを確認してください。
- データベース名が正しいことを確認してください。
ハッシュ生成が失敗するか、時間がかかりすぎる
ハッシュ生成が失敗した場合、またはパフォーマンスが低下した場合。
What to do:
- Cloud Exchangeの空きディスク容量を確認してください(CSVファイルサイズの少なくとも2倍の容量が必要です)。
- ファイル/テーブルのサイズを縮小するか、より小さなテーブルに分割してください。
- パフォーマンス向上のため、必要でない場合はサニタイズ機能を無効にしてください。
- 処理中はシステムリソースを監視してください。
既知の行動
- サニタイズ処理は処理速度を約65%低下させる可能性があるが、データ品質を向上させる。
- 辞書の作成はリソースを大量に消費するため、 必要な場合にのみ行うべきです。
- このプラグインは処理中に一時ファイルを作成しますが、それらは自動的に削除されます。
- 非常に大きなファイルの場合、SSH接続のタイムアウトが発生する可能性があります。タイムアウト値を増やすことを検討してください。
- メモリ使用量はCSVファイルサイズ/テーブルサイズに比例します。大容量ファイルの処理中はシステムリソースを監視してください。

