Keamanan tingkat tabel, kolom, dan baris di OneLake

Peran keamanan OneLake mengontrol siapa yang dapat mengakses data dalam item Fabric Anda. Kadang-kadang memberikan atau menolak akses ke seluruh item terasa terlalu kasar. Anda mungkin perlu menyembunyikan kolom sensitif, membatasi baris mana yang dilihat pengguna, atau hanya mengekspos tabel tertentu. Dalam sebuah peran, Anda dapat menyempurnakan akses pada tiga tingkat granularitas: keamanan tingkat objek untuk tabel dan folder, keamanan tingkat kolom (CLS) untuk kolom individual, dan keamanan tingkat baris (RLS) untuk baris individual.

Artikel ini menjelaskan apa yang dilakukan setiap kontrol dan bagaimana OneLake menegakkannya. Untuk membuat kontrol ini, lihat Buat dan kelola peran keamanan OneLake.

Peran keamanan OneLake menggunakan model hibah untuk memberikan akses ke data. Anda tidak bisa menolak akses yang diberikan melalui peran atau model izin yang berbeda. Oleh karena itu, kontrol ini tidak membatasi akses bagi pengguna di peran Admin, Anggota, dan Kontributor di tingkat workspace.

Keamanan tabel dan folder

Keamanan tingkat tabel dan folder, juga disebut keamanan tingkat objek (OLS), memungkinkan Anda memberikan akses ke tabel atau folder tertentu dalam item data. Dengan OLS, Anda membuat izin untuk data terstruktur maupun tidak terstruktur di tingkat folder. Karena tabel Delta Parquet di OneLake direpresentasikan sebagai folder, Anda dapat mengamankan tabel dengan cara yang sama seperti mengamankan folder. Skema juga merupakan folder, jadi Anda bisa mengamankannya dengan cara yang sama.

Keamanan tingkat kolom dan baris

Keamanan OneLake menegakkan keamanan tingkat kolom dan baris dengan salah satu dari dua cara:

  • Tabel filter: Pengguna yang melakukan query pada tabel menggunakan mesin Fabric, seperti notebook Spark, atau engine pihak ketiga yang diotorisasi hanya melihat kolom atau baris yang diizinkan oleh aturan CLS atau RLS.
  • Tabel blok: Pengguna yang melakukan query pada tabel menggunakan mesin pihak ketiga yang tidak sah tidak dapat membaca tabel tersebut.

Keamanan OneLake dapat menegakkan aturan CLS dan RLS untuk tabel Delta Parquet atau tabel Iceberg yang divirtualisasi. Aturan yang diterapkan pada tipe tabel lain memblokir akses ke seluruh tabel untuk anggota peran.

Jika aturan CLS atau RLS memiliki ketidaksesuaian dengan tabel tempat aturan tersebut didefinisikan, kueri gagal dan tidak mengembalikan data. Misalnya, ketidakcocokan terjadi ketika sebuah aturan merujuk pada kolom yang tidak ada dalam tabel.

Keamanan tingkat kolom

Keamanan tingkat kolom (CLS) memberikan akses ke kolom yang dipilih dalam sebuah tabel, bukan ke seluruh tabel. Data dalam kolom yang Anda hapus dari daftar yang diizinkan tidak terlihat oleh pengguna.

Untuk tabel yang difilter dengan CLS, perilaku berikut berlaku:

  • Jika pengguna menjalankan select * kueri pada tabel di mana mereka hanya memiliki akses ke beberapa kolom, aturan CLS berperilaku berbeda tergantung pada mesin Fabric:
    • Buku catatan Spark: Kueri berhasil dan hanya menampilkan kolom yang diizinkan.
    • Titik akhir analitik SQL: Kueri mengembalikan kesalahan dan memblokir akses ke kolom yang tidak dapat diakses oleh pengguna.
    • Model semantik: Kueri mengembalikan kesalahan dan memblokir akses ke kolom yang tidak dapat diakses pengguna.
  • Nama kolom yang aman mungkin terlihat dalam pengalaman tertentu, tetapi nilai data tidak pernah muncul.

Keamanan tingkat baris

Keamanan tingkat baris (RLS) mendefinisikan pembatasan data tingkat baris untuk data tabular yang disimpan di OneLake. Anda mendefinisikan peran yang berisi aturan untuk memfilter baris data untuk anggota peran. Ketika anggota peran RLS melakukan query data, OneLake mengevaluasi aturan RLS dan hanya mengembalikan baris yang diizinkan. Baris adalah konsep yang hanya relevan untuk data tabel, jadi Anda tidak bisa mendefinisikan RLS untuk folder non-tabel atau data tidak terstruktur.

Untuk tabel yang difilter dengan RLS, perilaku berikut berlaku:

  • Akses ke tabel mungkin diblokir jika pernyataan RLS berisi kesalahan sintaksis yang mencegahnya dievaluasi.

Untuk sintaks yang digunakan untuk menulis aturan RLS, lihat Referensi sintaks keamanan tingkat baris.

Menggabungkan keamanan tingkat baris dan tingkat kolom

Keamanan tingkat baris dan tingkat kolom dapat digunakan bersama-sama untuk membatasi akses pengguna ke tabel. Namun, kedua kebijakan tersebut harus diterapkan dengan menggunakan satu peran keamanan khusus pada OneLake. Dalam skenario ini, akses ke data dibatasi sesuai dengan aturan yang diatur dalam satu peran.

Keamanan OneLake tidak mendukung kombinasi dua peran atau lebih di mana satu berisi aturan RLS dan yang lain berisi aturan CLS. Pengguna yang mencoba mengakses tabel yang merupakan bagian dari kombinasi peran yang tidak didukung menerima kesalahan kueri.