Udostępnij za pośrednictwem


Zabezpieczenia na poziomie kolumny w magazynowaniu danych sieci szkieletowej

Dotyczy: punkt końcowy analizy SQL i magazyn w usłudze Microsoft Fabric

Zabezpieczenia na poziomie kolumn upraszczają projektowanie i kodowanie zabezpieczeń w aplikacji, co pozwala ograniczyć dostęp do kolumn w celu ochrony poufnych danych. Na przykład upewnienie się, że konkretni użytkownicy mogą uzyskiwać dostęp tylko do niektórych kolumn tabeli, które są odpowiednie dla ich działu.

Zabezpieczenia na poziomie kolumny na poziomie danych

Logika ograniczeń dostępu znajduje się w warstwie bazy danych, a nie w żadnej warstwie aplikacji. Baza danych stosuje ograniczenia dostępu za każdym razem, gdy jest podejmowana próba dostępu do danych, z dowolnej aplikacji lub platformy raportowania, w tym usługi Power BI. To ograniczenie sprawia, że bezpieczeństwo jest bardziej niezawodne i niezawodne dzięki zmniejszeniu obszaru powierzchni ogólnego systemu zabezpieczeń.

Zabezpieczenia na poziomie kolumny dotyczą tylko zapytań dotyczących punktu końcowego usługi Warehouse lub analizy SQL w usłudze Fabric. Zapytania usługi Power BI w magazynie w trybie Direct Lake powrócą do trybu Direct Query w celu przestrzegania zabezpieczeń na poziomie kolumny.

Ograniczanie dostępu do niektórych kolumn do niektórych użytkowników

Ponadto zabezpieczenia na poziomie kolumny są prostsze i niż projektowanie dodatkowych widoków w celu odfiltrowania kolumn w celu nałożenia ograniczeń dostępu dla użytkowników.

Zaimplementuj zabezpieczenia na poziomie kolumny za pomocą instrukcji GRANT T-SQL. Dla uproszczenia zarządzania przypisywanie uprawnień do ról jest preferowane do korzystania z użytkowników indywidualnych.

Zabezpieczenia na poziomie kolumn są stosowane do udostępnionego magazynu lub magazynu typu lakehouse, ponieważ bazowe źródło danych nie uległo zmianie.

Obsługiwane jest tylko uwierzytelnianie entra firmy Microsoft.

Przykłady

W tym przykładzie zostanie utworzona tabela i ograniczy kolumny widoczne charlie@contoso.com w customers tabeli.

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

Pozwolimy Charliemu na dostęp tylko do kolumn powiązanych z klientem, ale nie do kolumny poufnej CreditCard :

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

Zapytania wykonywane w sposób charlie@contoso.com nie powiedzie się, jeśli zawierają kolumnę 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'.

Następny krok