次の方法で共有


OneLake の列レベル セキュリティ (プレビュー)

列レベル セキュリティ (CLS) は 、OneLake セキュリティ (プレビュー) の機能であり、テーブルへのフル アクセスではなく、テーブル内の選択した列にアクセスできます。 CLS を使用すると、ユーザーがアクセスできるテーブルのサブセットを指定できます。 リストから削除された列は、ユーザーには表示されません。

前提条件

列 レベルのセキュリティを適用する

OneLake セキュリティ CLS は、次の 2 つの方法のいずれかで適用されます。

  • Fabric エンジンのフィルター処理されたテーブル: Spark ノートブックなどの Fabric エンジンに対するクエリを実行すると、CLS ルールごとに表示できる列のみがユーザーに表示されます。
  • テーブルへのアクセスのブロック: CLS 規則が適用されたテーブルは、サポートされている Fabric エンジンの外部では読み取れません。

フィルター処理されたテーブルの場合、次の動作が適用されます。

  • CLS ルールでは、管理者、メンバー、および共同作成者ロールを持つユーザーへのアクセスは制限されません。
  • CLS 規則に、定義されているテーブルとの不一致が含まれる場合、クエリは失敗し、列は返されません。 たとえば、CLS 規則がテーブルの一部に属さない列に対して定義されている場合です。
  • CLS テーブルのクエリは、ユーザーが 2 つの異なるロールに属し、それらのロールの 1 つが行レベル セキュリティ (RLS) を持っている場合、エラーが発生して失敗します。
  • CLS 規則は、Delta Parquet テーブル オブジェクトにのみ適用できます。
    • Delta 以外のテーブル オブジェクトに適用される CLS ルールは、ロールのメンバーのテーブル全体へのアクセスをブロックします。
  • ユーザーが一部の列にのみアクセスできるテーブルに対して select * クエリを実行する場合、CLS ルールの動作はファブリック エンジンによって異なります。
    • Spark ノートブック: クエリは成功し、許可されている列のみが表示されます。
    • SQL 分析エンドポイント: ユーザーがアクセスできない列に対する列アクセスがブロックされます。
    • セマンティック モデル: ユーザーがアクセスできない列に対する列アクセスがブロックされます。

列レベル セキュリティ規則を定義する

列レベルのセキュリティは、アイテムの [テーブル ] セクションで、Delta Parquet テーブルの OneLake セキュリティ ロールの一部として定義できます。 CLS は常にテーブルに対して指定され、有効または無効になります。 既定では、CLS は無効になっており、ユーザーはすべての列にアクセスできます。 ユーザーは CLS を有効にし、リストから列を削除してアクセスを取り消すことができます。

重要

別のロールが列へのアクセスを許可している場合、列へのアクセスを削除しても、その列へのアクセスは拒否されません。

列レベルのセキュリティを定義するには、次の手順に従います。

  1. データ項目に移動し、[ OneLake セキュリティの管理 (プレビュー)] を選択します。

  2. テーブルまたはフォルダーのセキュリティを定義する既存のロールを選択するか、[新規] を選択して新しいロールを作成します。

  3. ロールの詳細ページで、CLS を定義するテーブルの横にある他のオプション ([...]) を選択し、[列セキュリティ (プレビュー)] を選択します。

    テーブルのアクセス許可を編集するための [列セキュリティ] の選択を示すスクリーンショット。

  4. テーブルの CLS は、既定では無効になっています。 [ CLS を有効にする] を選択するか、 新しい規則 を作成して有効にします。

    UI には、ユーザーが表示できるそのテーブルの列の一覧が設定されます。 既定では、すべての列が表示されます。

  5. 列へのアクセスを制限するには、列の名前の隣にあるチェックボックスを選択してから、[削除] を選択します。 許可される列の一覧には、少なくとも 1 つの列が残っている必要があります。

  6. [保存] を選択してロールを更新します。

  7. 削除された列を追加する場合は、[ 新しいルール] を選択します。 このアクションで、リストの末尾に新しい CLS 規則のエントリが追加されます。 その後、ドロップダウンを使用して、アクセスに含める列を選択します。

  8. 変更が完了したら、[保存] を選択します。

SQL 分析エンドポイントの OneLake セキュリティを有効にする

SQL 分析エンドポイントで OneLake セキュリティを使用するには、その ユーザーの ID モードを有効にする必要があります。 新しく作成された SQL 分析エンドポイントは既定でユーザーの ID モードになるため、既存の SQL 分析エンドポイントでは次の手順に従う必要があります。

ユーザーの ID モードに切り替える必要があるのは、SQL 分析エンドポイントごとに 1 回だけです。 ユーザーの ID モードに切り替えされていないエンドポイントは、引き続き委任された ID を使用してアクセス許可を評価します。

  1. SQL 分析エンドポイントに移動します。

  2. SQL 分析エンドポイント エクスペリエンスで、上部のリボンにある [ セキュリティ ] タブを選択します。

  3. OneLake アクセス モードでユーザーの ID を選択します。

    SQL 分析エンドポイントに対して OneLake セキュリティを有効にする [ユーザー ID] を選択するスクリーンショット。

  4. プロンプトで[はい]を選択 し、ユーザーの ID を使用します。

    テーブル読み取りアクセスに対して OneLake セキュリティを有効にするために受け入れる必要があるユーザー プロンプトを示すスクリーンショット。

これで、SQL 分析エンドポイントを OneLake セキュリティで使用する準備ができました。

行レベル セキュリティと列レベル セキュリティを組み合わせる

行レベル セキュリティと列レベル セキュリティを一緒に使用して、テーブルへのユーザー アクセスを制限できます。 ただし、2 つのポリシーは、単一の OneLake セキュリティ ロールを使用して適用する必要があります。 このシナリオでは、1 つのロールで設定されている規則に従って、データへのアクセスが制限されます。

OneLake セキュリティでは、1 つに RLS 規則が含まれ、もう 1 つに CLS 規則が含まれる 2 つ以上のロールの組み合わせはサポートされません。 サポートされていないロールの組み合わせの一部であるテーブルにアクセスしようとするユーザーは、クエリ エラーを受け取ります。