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