Fabric データ ウェアハウスでの列レベルのセキュリティ

適用対象:✅ Microsoft Fabric の SQL 分析エンドポイントおよびウェアハウス

列レベルのセキュリティにより、アプリケーションのセキュリティの設計とコーディングが簡略化されるため、列のアクセスを制限して機密データを保護することができます。 たとえば、特定のユーザーが、所属する部門に関連するテーブルの一定の列にのみアクセスできるようにします。

データ レベルでの列レベルのセキュリティ

アクセス制限ロジックは、単一のアプリケーション層ではなく、データベース層にあります。 Power BI を含む任意のアプリケーションまたはレポート プラットフォームからデータ アクセスが試行されるたびに、データベースによってアクセス制限が適用されます。 この制限により、セキュリティ全体の外部からのアクセスが減り、そのシステムの信頼性と堅牢性が向上します。

列レベルのセキュリティは、Fabric のウェアハウスまたは SQL 分析エンドポイントのクエリにのみ適用されます。 Direct Lake モードのウェアハウスに対する Power BI クエリは、列レベルのセキュリティに準拠するために Direct Query モードにフォールバックします。

特定の列へのアクセスを特定のユーザーに制限する

さらに、ユーザーにアクセス制限を課すには、追加のビューを設計して列を除外する、列レベルのセキュリティの方が簡単です。

列レベルのセキュリティは、GRANT T-SQL ステートメントを使って実装します。 管理をわかりやすくするために、個人を使用するより、ロールにアクセス許可を割り当てることをお勧めします。

基になるデータ ソースが変更されていないため、列レベルのセキュリティは、SQL 分析エンドポイントを介してアクセスされる共有ウェアハウスまたはレイクハウスに適用されます。

Microsoft Entra 認証のみサポートしています。 詳細については、「Microsoft Fabric の SQL 認証の代替え手段とする Microsoft Entra 認証」を参照してください。

この例では、テーブルを作成し、charlie@contoso.comcustomers テーブルで表示できる列を制限します。

CREATE TABLE dbo.Customers
  (CustomerID int,
   FirstName varchar(100) NULL,
   CreditCard char(16) NOT NULL,
   LastName varchar(100) NOT NULL,
   Phone varchar(12) NULL,
   Email varchar(100) NULL);

Charlie には、顧客に関連する列へのアクセスのみ許可し、機密性の高い CreditCard 列へのアクセスは許可しません。

GRANT SELECT ON Customers(CustomerID, FirstName, LastName, Phone, Email) TO [Charlie@contoso.com];

charlie@contoso.com として実行されたクエリは、CreditCard 列が含まれている場合は失敗します。

SELECT * FROM Customers;
Msg 230, Level 14, State 1, Line 12
The SELECT permission was denied on the column 'CreditCard' of the object 'Customers', database 'ContosoSales', schema 'dbo'.

次のステップ