Безопасность на уровне столбцов в хранилище данных 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'.