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
Powiązana zawartość
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla