Поделиться через


Безопасность на уровне столбцов в хранилище данных Fabric

Область применения:✅ конечная точка аналитики SQL и хранилище в Microsoft Fabric

Безопасность на уровне столбцов упрощает проектирование и реализацию безопасности в приложении, позволяя ограничивать доступ к столбцам для защиты конфиденциальных данных. Например, можно предоставить конкретным пользователям доступ только к определенным столбцам таблицы, имеющей отношение к их отделу.

Безопасность на уровне столбцов на уровне данных

Логика ограничения доступа находится на уровне базы данных, а не в одном уровне приложений. База данных применяет ограничения доступа при каждом попытке доступа к данным из любого приложения или платформы отчетов, включая Power BI. Это ограничение делает систему безопасности более надежной и устойчивой за счет уменьшения ее контактной зоны.

Безопасность на уровне столбцов применяется только к запросам в конечной точке хранилища или аналитики SQL в Fabric. Запросы Power BI в хранилище в режиме Direct Lake возвращаются в режим Direct Query для соблюдения безопасности на уровне столбцов.

Ограничение доступа к определенным столбцам определенным пользователям

Кроме того, безопасность на уровне столбцов проще, чем создавать дополнительные представления для фильтрации столбцов для применения ограничений доступа для пользователей.

Реализуйте безопасность на уровне столбцов с помощью инструкции GRANT T-SQL. Для простоты управления назначение разрешений ролям предпочтительнее использовать отдельных лиц.

Безопасность на уровне столбцов применяется к общему хранилищу или озеру, доступ к которой осуществляется через конечную точку аналитики SQL, так как базовый источник данных не изменился.

Поддерживается только проверка подлинности Microsoft Entra. Дополнительные сведения см. в статье "Проверка подлинности Microsoft Entra" в качестве альтернативы проверке подлинности SQL в Microsoft Fabric.

Примеры

В этом примере будет создана таблица и будут ограничены столбцы, которые charlie@contoso.com могут видеть в customers таблице.

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);

Мы разрешим Чарли получить доступ только к столбцам, связанным с клиентом, но не к конфиденциальному 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'.

Следующий шаг