Peran

Berlaku untuk: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Peran dalam model tabular menentukan izin anggota untuk model. Anggota peran dapat melakukan tindakan pada model seperti yang didefinisikan oleh izin peran. Peran yang ditentukan dengan izin baca juga dapat memberikan keamanan tambahan di tingkat baris dengan menggunakan filter tingkat baris.

Untuk himpunan data Azure Analysis Services dan Power BI, pengguna harus berada di ID Microsoft Entra dan nama pengguna dan grup yang ditentukan harus berdasarkan alamat email organisasi atau UPN. Untuk SQL Server Analysis Services, peran berisi anggota pengguna menurut nama pengguna Windows atau menurut grup Windows, dan izin (baca, proses, administrator). Untuk model semantik Azure Analysis Services dan Power BI, pengguna harus berada di Azure Active Directory Anda dan nama pengguna dan grup yang ditentukan harus berdasarkan alamat email organisasi atau UPN. Untuk SQL Server Analysis Services, peran berisi anggota pengguna menurut nama pengguna Windows atau menurut grup Windows, dan izin (baca, proses, administrator).

Penting

Saat menggunakan Visual Studio untuk membuat peran dan menambahkan pengguna organisasi ke proyek model tabular yang akan disebarkan ke Azure Analysis Services atau Power BI, gunakan Ruang kerja terintegrasi.

Penting

Agar pengguna dapat terhubung ke model yang disebarkan dengan menggunakan aplikasi klien pelaporan, Anda harus membuat setidaknya satu peran dengan setidaknya izin Baca tempat pengguna tersebut menjadi anggotanya.

Informasi dalam artikel ini dimaksudkan untuk penulis model tabular yang menentukan peran dengan menggunakan kotak dialog Manajer Peran di SSDT. Peran yang ditentukan selama penulisan model berlaku untuk database ruang kerja model. Setelah database model disebarkan, administrator database model dapat mengelola (menambahkan, mengedit, menghapus) anggota peran dengan menggunakan SSMS.

Memahami peran

Peran digunakan dalam Analysis Services untuk mengelola akses data model. Ada dua jenis peran:

  • Peran server, peran tetap yang menyediakan akses administrator ke instans server Analysis Services. Peran server tidak berlaku untuk Power BI. Sebagai gantinya, Power BI menggunakan peran ruang kerja.

  • Peran database, peran yang ditentukan oleh penulis model dan administrator untuk mengontrol akses ke database model dan data untuk pengguna non-administrator.

Peran yang ditentukan untuk model tabular adalah peran database. Artinya, peran berisi anggota yang terdiri dari pengguna atau grup yang memiliki izin khusus yang menentukan tindakan yang dapat dilakukan anggota tersebut pada database model. Peran dibuat sebagai objek terpisah dalam database, dan hanya berlaku untuk database tempat peran tersebut dibuat. Pengguna dan grup disertakan dalam peran oleh penulis model, yang secara default memiliki izin Administrator di server database ruang kerja; untuk model yang disebarkan, oleh administrator.

Peran dalam model tabular dapat didefinisikan lebih lanjut dengan filter baris, juga dikenal sebagai keamanan tingkat baris. Filter baris menggunakan ekspresi DAX untuk menentukan baris dalam tabel, dan baris terkait ke berbagai arah, yang dapat dikueri pengguna. Filter baris menggunakan ekspresi DAX hanya dapat ditentukan untuk izin Baca dan Baca dan Proses. Di Power BI, peran model ditentukan dalam Power BI Desktop dan hanya berlaku untuk keamanan tingkat baris. Untuk mempelajari selengkapnya, lihat Filter baris nanti di artikel ini.

Secara default, saat Anda membuat proyek model tabular baru, proyek tidak memiliki peran apa pun. Peran dapat ditentukan dengan menggunakan kotak dialog Manajer Peran di SSDT. Saat peran ditentukan selama penulisan model, peran tersebut diterapkan ke database ruang kerja model. Saat model disebarkan, peran yang sama diterapkan ke model yang disebarkan. Setelah model disebarkan, anggota peran server ([Administrator Analysis Services) dan administrator database dapat mengelola peran yang terkait dengan model dan anggota yang terkait dengan setiap peran dengan menggunakan SSMS.

Izin

Izin peran yang dijelaskan di bagian ini hanya berlaku untuk Azure Analysis Services dan SQL Server Analysis Services. Di Power BI, izin ditentukan untuk model semantik. Untuk mempelajari selengkapnya, lihat Mengelola akses model semantik.

Setiap peran memiliki satu izin database yang ditentukan (kecuali untuk izin Baca dan Proses gabungan). Secara default, peran baru akan memiliki izin Tidak Ada. Artinya, setelah anggota ditambahkan ke peran dengan izin Tidak Ada, mereka tidak dapat mengubah database, menjalankan operasi proses, mengkueri data, atau melihat database kecuali izin yang berbeda diberikan.

Grup atau pengguna dapat menjadi anggota dari sejumlah peran, setiap peran dengan izin yang berbeda. Saat pengguna adalah anggota dari beberapa peran, izin yang ditentukan untuk setiap peran bersifat kumulatif. Misalnya, jika pengguna adalah anggota peran dengan izin Baca, dan juga anggota peran dengan izin Tidak Ada, pengguna tersebut akan memiliki izin Baca.

Setiap peran dapat memiliki satu izin berikut yang ditentukan:

Izin Deskripsi Filter baris menggunakan DAX
Tidak ada Anggota tidak dapat melakukan modifikasi apa pun pada skema database model dan tidak dapat mengkueri data. Filter baris tidak berlaku. Tidak ada data yang terlihat oleh pengguna dalam peran ini
Read Anggota diizinkan untuk mengkueri data (berdasarkan filter baris) tetapi tidak dapat melihat database model di SSMS, tidak dapat membuat perubahan apa pun pada skema database model, dan pengguna tidak dapat memproses model. Filter baris dapat diterapkan. Hanya data yang ditentukan dalam rumus DAX filter baris yang terlihat oleh pengguna.
Baca dan Proses Anggota diizinkan untuk mengkueri data (berdasarkan filter tingkat baris) dan menjalankan operasi proses dengan menjalankan skrip atau paket yang berisi perintah proses, tetapi tidak dapat membuat perubahan apa pun pada database. Tidak dapat menampilkan database model di SSMS. Filter baris dapat diterapkan. Hanya data yang ditentukan dalam rumus DAX filter baris yang dapat dikueri.
Proses Anggota dapat menjalankan operasi proses dengan menjalankan skrip atau paket yang berisi perintah proses. Tidak dapat mengubah skema database model. Tidak dapat mengkueri data. Tidak dapat mengkueri database model di SSMS. Filter baris tidak berlaku. Tidak ada data yang dapat dikueri dalam peran ini
Administrator Anggota dapat melakukan modifikasi pada skema model dan dapat mengkueri semua data di perancang model, klien pelaporan, dan SSMS. Filter baris tidak berlaku. Semua data dapat dikueri dalam peran ini.

Catatan

Anggota dengan izin Baca dan Baca dan Proses dapat mengkueri data berdasarkan filter baris tetapi tidak dapat melihat database model di SSMS. Anggota tidak dapat membuat perubahan pada skema database model dan tidak dapat memproses model. Namun, pada SQL Server Analysis Services 2019 dan yang lebih lama, anggota dapat menggunakan DMV untuk menentukan definisi pengukuran. SQL Server Analysis Services 2022 dan yang lebih baru memblokir akses ke DMV untuk keamanan yang ditingkatkan.

Filter Baris

Filter baris, umumnya dikenal sebagai keamanan tingkat baris di Power BI, menentukan baris mana dalam tabel yang dapat dikueri oleh anggota peran tertentu. Filter baris ditentukan untuk setiap tabel dalam suatu model menggunakan rumus DAX.

Filter baris hanya dapat ditentukan untuk peran dengan izin Baca dan Baca dan Proses. Secara default, jika filter baris tidak ditentukan untuk tabel tertentu, anggota peran yang memiliki izin Baca atau Baca dan Proses dapat mengkueri semua baris dalam tabel kecuali pemfilteran silang berlaku dari tabel lain.

Setelah filter baris ditentukan untuk tabel tertentu, rumus DAX, yang harus dievaluasi ke nilai TRUE/FALSE, menentukan baris yang dapat dikueri oleh anggota peran tertentu. Baris yang tidak disertakan dalam rumus DAX tidak akan dapat dikueri. Misalnya, untuk anggota peran Penjualan, tabel Pelanggan dengan ekspresi filter baris berikut, =Pelanggan [Negara] = "AS", anggota peran Penjualan, hanya akan dapat melihat pelanggan di AS.

Filter baris berlaku untuk baris yang ditentukan serta baris terkait. Ketika tabel memiliki beberapa hubungan, filter menerapkan keamanan untuk hubungan yang aktif. Filter baris akan bersinggungan dengan filer baris lain yang ditentukan untuk tabel terkait, misalnya:

Tabel Ekspresi DAX
Wilayah =Region[Country]="USA"
ProductCategory =ProductCategory[Name]="Bicycles"
Transaksi =Transactions[Year]=2020

Efek bersih dari izin ini pada tabel Transaksi adalah bahwa anggota akan diizinkan untuk mengkueri baris data di mana pelanggan berada di AS, dan kategori produk adalah sepeda, dan tahun adalah 2020. Pengguna tidak akan dapat mengkueri transaksi apa pun di luar AS, atau transaksi apa pun yang bukan sepeda, atau transaksi apa pun yang tidak pada tahun 2020 kecuali mereka adalah anggota peran lain yang memberikan izin ini.

Anda dapat menggunakan filter, =FALSE() , untuk menolak akses ke semua baris untuk seluruh tabel.

Untuk mempelajari selengkapnya tentang peran model di Power BI, lihat keamanan tingkat baris di Power BI.

Keamanan dinamis

Keamanan dinamis menyediakan cara untuk menentukan keamanan tingkat baris berdasarkan nama pengguna pengguna yang saat ini masuk atau properti CustomData yang dikembalikan dari string koneksi. Untuk menerapkan keamanan dinamis, Anda harus menyertakan dalam model Anda tabel dengan nilai login (nama pengguna Windows) untuk pengguna serta bidang yang dapat digunakan untuk menentukan izin tertentu; misalnya, tabel dimEmployees dengan ID login (domain\nama pengguna) serta nilai departemen untuk setiap karyawan.

Untuk menerapkan keamanan dinamis, Anda bisa menggunakan fungsi berikut sebagai bagian dari rumus DAX untuk mengembalikan nama pengguna pengguna yang saat ini masuk, atau properti CustomData dalam string koneksi:

Fungsi Deskripsi
Fungsi USERNAME (DAX) Mengembalikan nama pengguna domain\ pengguna yang saat ini masuk.
Fungsi CUSTOMDATA (DAX) Mengembalikan properti CustomData dalam string koneksi.

Anda dapat menggunakan fungsi LOOKUPVALUE untuk mengembalikan nilai untuk kolom di mana nama pengguna Windows sama dengan nama pengguna yang dikembalikan oleh fungsi USERNAME atau string yang dikembalikan oleh fungsi CustomData. Kueri kemudian dapat dibatasi di mana nilai yang dikembalikan oleh LOOKUPVALUE cocok dengan nilai dalam tabel yang sama atau terkait.

Misalnya, menggunakan rumus ini:

='dimDepartment'[DepartmentId]=LOOKUPVALUE('dimEmployees'[DepartmentId], 'dimEmployees'[LoginId], USERNAME(), 'dimEmployees'[LoginId], 'dimDepartment'[DepartmentId])

Fungsi LOOKUPVALUE mengembalikan nilai untuk kolom dimEmployees[DepartmentId] di mana dimEmployees[LoginId] sama dengan LoginID pengguna yang saat ini masuk, dikembalikan oleh USERNAME, dan nilai untuk dimEmployees[DepartmentId] sama dengan nilai untuk dimDepartment[DepartmentId]. Nilai di DepartmentId yang dikembalikan oleh LOOKUPVALUE kemudian digunakan untuk membatasi baris yang dikueri dalam tabel dimDepartment, dan tabel apa pun yang terkait dengan DepartmentId. Hanya baris di mana DepartmentId juga berada dalam nilai untuk DepartmentId yang dikembalikan oleh fungsi LOOKUPVALUE yang dikembalikan.

dimEmployees

NamaBelakang NamaDepan LoginId NamaDepartemen DepartmentId
Cokelat Kevin Adventure-works\kevin0 Marketing 7
Bradley David Adventure-works\david0 Marketing 7
Dobney JoLynn Adventure-works\JoLynn0 Produksi 4
Baretto DeMattos Paula Adventure-works\Paula0 Human Resources 2

dimDepartment

DepartmentId NamaDepartemen
1 Korporasi
2 Eksekutif Umum dan Administrasi
3 Manajemen persediaan
4 Manufaktur
5 Jaminan Kualitas
6 Penelitian dan Pengembangan
7 Penjualan dan Pemasaran

Peran pengujian

Saat menulis proyek model di Visual Studio, Anda bisa menggunakan fitur Analisis di Excel untuk menguji kemanjuran peran yang telah Anda tentukan. Dari menu Model di perancang model, saat Anda mengklik Analisis di Excel, sebelum Excel terbuka, kotak dialog Pilih Kredensial dan Perspektif muncul. Dalam dialog ini, Anda dapat menentukan nama pengguna saat ini, nama pengguna yang berbeda, peran, dan perspektif yang akan Anda gunakan untuk menyambungkan ke model ruang kerja sebagai sumber data. Untuk mempelajari selengkapnya, lihat Menganalisis di Excel.

Peran pembuatan skrip

Peran untuk model dan model semantik yang disebarkan dapat diskrip dengan menggunakan Tabular Model Scripting Language (TMSL) untuk membuat atau memodifikasi objek Peran. Skrip TMSL dapat dijalankan di SQL Server Management Studio atau dengan cmdlet PowerShell Invoke-ASCmd.

Lihat juga

Membuat dan Mengelola Peran
Perspektif
Analisis di Excel
Fungsi USERNAME (DAX)
Fungsi LOOKUPVALUE (DAX)
Fungsi CUSTOMDATA (DAX)