Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini mendokumentasikan sintaks untuk mendefinisikan aturan keamanan tingkat baris (RLS) dalam keamanan OneLake. Untuk menerapkan aturan RLS ke tabel, lihat Buat dan kelola peran keamanan OneLake.
Aturan RLS menggunakan sintaks SQL untuk menentukan baris yang dapat dilihat pengguna. Sintaksnya berbentuk pernyataan SQL SELECT dengan aturan RLS yang didefinisikan dalam klausa tersebut WHERE . Aturan RLS hanya mendukung subset SQL yang didefinisikan dalam artikel ini. Kueri dengan sintaks RLS yang tidak valid, atau sintaks RLS yang tidak sesuai dengan tabel dasarnya, menyebabkan tidak ada baris yang ditampilkan kepada pengguna, atau kesalahan kueri di endpoint analitik SQL.
Saat Anda menulis ekspresi RLS, perhatikan praktik terbaik berikut:
- Hindari ekspresi RLS yang samar atau terlalu kompleks.
- Ekspresi dengan tipe kuat dengan pencarian bilangan bulat atau string yang menggunakan "=" adalah yang paling aman dan mudah dipahami.
- Gunakan kolom bilangan bulat untuk pengurutan dan operasi yang lebih besar atau kurang dari.
- Hindari kesetaraan string jika Anda tidak mengetahui format data input, terutama untuk karakter Unicode atau sensitivitas aksen.
Keamanan tingkat baris mengevaluasi data string sebagai tidak sensitif huruf besar dengan menggunakan kolasi berikut untuk pengurutan dan perbandingan: Latin1_General_100_CI_AS_KS_WS_SC_UTF8.
Syntax
Jumlah maksimum karakter dalam aturan keamanan tingkat baris adalah 1000.
Semua aturan keamanan tingkat baris berbentuk sebagai berikut:
SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}
Contohnya:
SELECT * FROM Sales WHERE Amount > 50000 AND State='CA'
| Placeholder | Deskripsi |
|---|---|
| {schema_name} | Nama skema yang berisi {table_name}. Jika item mendukung skema, Anda harus menyertakan {schema_name}. |
| {table_name} | Nama tabel yang menjadi objek predikat RLS. Nilai ini harus persis sesuai dengan nama tabel, atau RLS tidak akan menampilkan baris. Gunakan tanda [] kurung siku untuk menghindari nama tabel dengan karakter khusus. Contohnya, SELECT * FROM [dbo].[Secret.Table]. |
| {column_level_boolean} | Pernyataan Boolean yang berisi komponen berikut: * Nama kolom: Nama kolom di {table_name}, sebagaimana muncul dalam skema log Delta. Anda dapat memformat nama kolom sebagai {column_name} atau {table_name}. {column_name}. * Operator: Salah satu operator yang didukung yang mengevaluasi nama dan nilai kolom menjadi nilai Boolean. * Nilai: Nilai statis atau kumpulan nilai yang akan dievaluasi. Anda dapat memiliki satu atau beberapa pernyataan Boolean yang dipisahkan oleh AND atau OR. |
Operator yang didukung
Aturan keamanan tingkat baris mendukung operator dan kata kunci berikut:
| Operator | Deskripsi |
|---|---|
= (sama dengan) |
Mengevaluasi ke true jika kedua nilai tersebut adalah jenis data yang sama dan sama persis. |
<> (tidak sama) |
Mengevaluasi ke true jika kedua nilai tersebut bukan tipe data yang sama dan tidak sama persis. |
> (lebih besar dari) |
Menghasilkan benar jika nilai kolom lebih besar dari nilai evaluasi. Untuk nilai string, operator ini menggunakan perbandingan bitwise untuk menentukan apakah satu string lebih besar dari yang lain. |
>= (lebih besar dari atau sama dengan) |
Mengevaluasi ke true jika nilai kolom lebih besar dari atau sama dengan nilai evaluasi. Untuk nilai string, operator ini menggunakan perbandingan bitwise untuk menentukan apakah satu string lebih besar dari atau sama dengan yang lain. |
< (kurang dari) |
Nilai kolom bernilai benar jika kurang dari nilai evaluasi. Untuk nilai string, operator ini menggunakan perbandingan bitwise untuk menentukan apakah satu string kurang dari yang lain. |
<= (kurang dari atau sama dengan) |
Mengevaluasi ke true jika nilai kolom kurang dari atau sama dengan nilai evaluasi. Untuk nilai string, operator ini menggunakan perbandingan bitwise untuk menentukan apakah satu string kurang dari atau sama dengan yang lain. |
IN |
Mengevaluasi sebagai true jika salah satu nilai evaluasi memiliki jenis data yang sama dan persis cocok dengan nilai kolom. |
NOT |
Bernilai true jika salah satu nilai evaluasi bukan tipe data yang sama atau tidak cocok persis dengan nilai kolom. |
AND |
Menggabungkan pernyataan sebelumnya dan pernyataan berikutnya dengan menggunakan operasi Boolean AND. Kedua pernyataan harus benar agar seluruh predikat menjadi benar. |
OR |
Menggabungkan pernyataan sebelumnya dan pernyataan berikutnya dengan menggunakan operasi Boolean OR. Salah satu pernyataan harus benar agar seluruh predikat menjadi benar. |
TRUE |
Ekspresi Boolean untuk benar. |
FALSE |
Ekspresi Boolean untuk nilai salah. |
BLANK |
Tipe data kosong, yang dapat Anda gunakan dengan operator IS. Contohnya, row IS BLANK. |
NULL |
Tipe data null, yang dapat Anda gunakan dengan operator IS. Contohnya, row IS NULL. |