Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Satır düzeyi güvenlik (RLS), OneLake'te depolanan tablosal veriler için satır düzeyi veri kısıtlamaları tanımlamaya olanak tanıyan onelake güvenliğinin bir özelliğidir. Kullanıcılar, OneLake'te bu rolün üyeleri için veri satırlarını filtrelemeye yönelik kurallar içeren roller tanımlayabilir. RLS rolünün bir üyesi bu verileri sorgulamaya gittiğinde, RLS kuralları değerlendirilir ve yalnızca izin verilen satırlar döndürülür. OneLake'de tanımlanan RLS kuralları, OneLake API'leri aracılığıyla Doku altyapıları ve yetkili üçüncü taraf altyapılar arasında tutarlı bir şekilde uygulanır ve sorgu altyapısından bağımsız olarak tek bir ilke tanımının uygulanması sağlanır.
Önkoşullar
- OneLake güvenliğini destekleyen bir veri öğesi. Desteklenen öğe türlerinin listesi için bkz. OneLake güvenliğini kullanmaya başlama.
- Bilinen sınırlamalar bölümünü gözden geçirin.
Satır düzeyi güvenliği anlama
OneLake güvenlik RLS'si iki yoldan biriyle uygulanır.
- Filtrelenmiş tablolar Fabric motorlarında: Spark not defterleri gibi desteklenen Fabric motorlarının listesine yönelik sorgular, kullanıcının RLS kurallarına göre yalnızca görmesine izin verilen satırları görmesini sağlar.
- Tablolara engellenen erişim: RLS kuralları uygulanmış tablolar, desteklenen Fabric altyapıları veya OneLake güvenliğini zorunlu kılan yetkili üçüncü taraf altyapılar dışında okunamaz. Yetkisiz motorlar için erişim engellenmiştir.
Filtrelenmiş tablolar için aşağıdaki davranışlar geçerlidir:
- RLS kuralları Yönetici, Üye ve Katkıda Bulunan rollerindeki kullanıcıların erişimini kısıtlamaz.
- RLS kuralının tanımlandığı tabloyla uyuşmazlığı varsa, sorgu başarısız olur ve hiçbir satır döndürülmez. Örneğin, RLS kuralı tablonun parçası olmayan bir sütuna başvuruda bulunursa.
- RLS tablolarının sorguları, bir kullanıcı iki farklı rolün parçasıysa ve rollerden birinde sütun düzeyinde güvenlik (CLS) varsa hatayla başarısız olur.
- RLS kuralları yalnızca Delta parquet tabloları olan nesneler için zorunlu kılınabilir.
- Bunun yerine Delta olmayan tablo nesnelerine uygulanan RLS kuralları, rolün üyeleri için tablonun tamamına erişimi engeller.
- RLS deyiminin değerlendirilmesini engelleyen söz dizimi hataları içeriyorsa tabloya erişim engellenebilir.
Yetkili altyapılardan verilere erişme
Supported Fabric motorları bunlara RLS kuralları uygulanmış tablolara erişebilir.
Tip
- SQL analiz uç noktasından verilere erişmek için SQL analiz uç noktası için OneLake güvenliğini etkinleştirin.
- Semantik modelden verilere erişmek için semantik modelin OneLake üzerinde Direct Lake kullanması gerekir.
Yetkili üçüncü taraf altyapılar, yetkili altyapı API'leri aracılığıyla RLS önkoşulları da dahil olmak üzere etkin erişim tanımlarını alabilir. OneLake, istekte bulunan kullanıcı için motordan bağımsız, önceden derlenmiş etkin erişimi döndürür ve yetkili motor sorgu zamanında politikaları uygular. OneLake, güvenlik ilkelerinin tek gerçek kaynağı olmaya devam eder.
Daha fazla bilgi için bkz. Üçüncü taraf altyapısını OneLake güvenliğiyle tümleştirme.
Satır düzeyi güvenlik kurallarını tanımlayın
Delta parquet biçiminde tablo verilerine erişim veren herhangi bir OneLake güvenlik rolünün parçası olarak satır düzeyi güvenlik kuralları tanımlayabilirsiniz. Satırlar yalnızca tablo verileriyle ilgili bir kavramdır, bu nedenle tablo dışı klasörler veya yapılandırılmamış veriler için RLS tanımlarına izin verilmez.
RLS kuralları, bir kullanıcının görebileceği satırları belirtmek için SQL söz dizimini kullanır. Bu söz dizimi, SELECT yan tümcesinde tanımlanan RLS kurallarını içeren bir SQL WHERE ifadesinin biçimindedir. RLS kuralları, Söz dizimi kuralları bölümünde tanımlanan SQL dilinin yalnızca bir alt kümesini destekler. Geçersiz RLS söz dizimine sahip veya temel tabloyla eşleşmeyen RLS söz dizimi içeren sorgular, kullanıcılara satır gösterilmemesiyle veya SQL analiz uç noktasında sorgu hatalarıyla sonuçlanır.
En iyi yöntem olarak, belirsiz veya aşırı karmaşık RLS ifadeleri kullanmaktan kaçının. Tamsayı veya "=" ile dize aramaları içeren kesin olarak yazılan ifadeler, en güvenli ve anlaşılması kolay ifade olacaktır.
RLS kurallarını tanımlamak için aşağıdaki adımları kullanın:
Lakehouse'unuza gidin ve OneLake güvenliğini yönet'i seçin.
Tablo veya klasör güvenliğini tanımlamak istediğiniz mevcut bir rolü seçin veya yeni bir rol oluşturmak için Yeni seçin.
Rol ayrıntıları sayfasında RLS'yi tanımlamak istediğiniz tablonun yanındaki diğer seçenekleri (...) ve ardından Satır güvenliği'ni seçin.
Bir tablodaki izinleri düzenlemek için 'satır güvenliği'nin seçilmesini gösteren bir ekran görüntüsü.
Kullanıcıların kod düzenleyicisinde görmesini istediğiniz satırları tanımlamak için SQL deyimini yazın. Kılavuzluk için Sözdizimi Kuralları bölümünü kullanın.
Kaydet'i seçerek satır güvenlik kurallarını onaylayın.
Söz dizimi kuralları
Tüm satır düzeyi güvenlik kuralları aşağıdaki formu alır:
SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}
Örneğin:
SELECT * FROM Sales WHERE Amount>'50000' AND State='CA'
Satır düzeyi güvenlik kuralındaki karakter sayısı üst sınırı 1000'dir.
| Yer tutucu | Açıklama |
|---|---|
| {schema_name} | {table_name} adlı şemanın adı. Yapıt şemaları destekliyorsa {schema_name} gereklidir. |
| {table_name} | RLS koşulunun uygulandığı tablonun adı. Bu değer, tablonun adıyla tam eşleşmelidir, aksi takdirde RLS hiçbir satır göstermez. |
| {column_level_boolean} | Aşağıdaki bileşenleri içeren bir Boole deyimi: * Sütun adı: Delta günlük şemasında belirtildiği gibi {table_name} içindeki bir sütunun adı. Sütun adları {column_name} veya {table_name} olarak biçimlendirilebilir. {column_name}. * İşleç: Sütun adını ve değerini Boole değeri olarak değerlendiren Desteklenen işleçlerden biri. * Değer: Değerlendirilecek statik değer veya değer kümesi. AND veya OR ile ayrılmış bir veya daha fazla Boole deyiminiz olabilir. |
Desteklenen operatörler
Satır düzeyi güvenlik kuralları aşağıdaki işleçler ve anahtar sözcükler listesini destekler:
| Operatör | Açıklama |
|---|---|
| = (eşittir) | İki değer aynı veri türü ve tam eşleşmeler ise true olarak değerlendirilir. |
| <> (eşit değildir) | İki değer aynı veri türü değilse ve tam eşleşmeler değilse true olarak değerlendirilir. |
| > (>) | Sütun değeri değerlendirme değerinden büyükse doğru olarak değerlendirilir. Dize değerleri için bu işleç, bir dizenin diğerinden büyük olup olmadığını belirlemek için bit düzeyinde karşılaştırma kullanır. |
| >= (büyüktür veya eşittir) | Değerlendirme değerine eşit veya daha büyükse sütun değeri doğru olarak değerlendirilir. Dize değerleri için bu işleç, bir dizenin diğerinden büyük veya buna eşit olup olmadığını belirlemek için bit düzeyinde karşılaştırma kullanır. |
| <'dan küçük | Değerlendirme değerinden küçükse, sütun değeri doğru (true) olarak değerlendirilir. Dize değerleri için bu işleç, bir dizenin diğerinden küçük olup olmadığını belirlemek için bit düzeyinde karşılaştırma kullanır. |
| <= (küçük veya eşittir) | Sütun değeri, karşılaştırma değerinden küçük veya ona eşitse gerçek olarak değerlendirilir. Dize değerleri için bu işleç, bir dizenin diğerinden küçük veya buna eşit olup olmadığını belirlemek için bit düzeyinde karşılaştırma kullanır. |
| İÇERİDE | Değerlendirme değerlerinden herhangi biri aynı veri türündeyse ve sütun değeriyle tam olarak eşleşiyorsa true olarak değerlendirilir. |
| DEĞİL | Değerlendirme değerlerinden herhangi biri aynı veri türü değilse veya sütun değerinin tam eşleşmesi değilse true olarak değerlendirilir. |
| VE | Boolean AND işlemi kullanarak önceki deyimi ve sonraki deyimi birleştirir. Tüm koşulun doğru olması için her iki ifadenin de doğru olması gerekir. |
| VEYA | Boolean OR işlemi kullanarak önceki deyimi ve sonraki deyimi birleştirir. Tüm koşulun doğru olması için ifadelerden birinin doğru olması gerekir. |
| DOĞRU | True için Boole ifadesi. |
| YANLIŞ | False için Boole ifadesi. |
| BOŞ | IS işleciyle kullanılabilen boş veri türü. Örneğin, row IS BLANK. |
| null | IS işleciyle kullanılabilen null veri türü. Örneğin, row IS NULL. |
Satır düzeyi ve sütun düzeyi güvenliği birleştirme
Satır düzeyi ve sütun düzeyi güvenlik, tabloya kullanıcı erişimini kısıtlamak için birlikte kullanılabilir. Ancak, iki ilkenin tek bir OneLake güvenlik rolü kullanılarak uygulanması gerekir. Bu senaryoda, verilere erişim tek rolde ayarlanan kurallara göre kısıtlanır.
OneLake güvenliği, biri RLS kurallarını, diğeri CLS kurallarını içeren iki veya daha fazla rolün birleşimini desteklemez. Desteklenmeyen bir rol bileşiminin parçası olan tablolara erişmeye çalışan kullanıcılar sorgu hatalarını alır.