Menyematkan laporan di SQL Server Analysis Services (SSAS) lokal
BERLAKU UNTUK: Aplikasi memiliki data
Milik pengguna
Artikel ini menjelaskan cara menyematkan konten Power BI dengan koneksi langsung Model Tabular Analysis Services lokal ke aplikasi Power BI standar yang memiliki aplikasi data. Artikel ini berlaku untuk semua model SSAS koneksi langsung baik yang menerapkan RLS atau tidak.
Dalam skenario ini, database berada pada model SSAS (lokal), dan mesin Power BI tersambung ke dalamnya melalui gateway. Peran keamanan (RLS) dan izin, jika ada, ditentukan dalam model SSAS, dan bukan di Power BI Desktop.
Siapa artikel ini untuk
Artikel ini sebagian besar relevan untuk ISV yang sudah memiliki penyiapan database lokal (SSAS) (dengan atau tanpa RLS) dan ingin menyematkan konten langsung dari sana.
Penyiapan ISV
Keamanan tingkat baris lokal hanya tersedia dengan koneksi langsung, tetapi Anda dapat membuat koneksi langsung ke database apa pun baik itu menerapkan RLS atau tidak. Drive ini termasuk:
- Database tanpa peran RLS yang disiapkan
- Database dengan anggota yang termasuk dalam satu atau beberapa peran
- Database dengan peran keamanan statis atau dinamis
Untuk menyematkan laporan dari model SSAS, Anda perlu melakukan tindakan berikut:
Menyiapkan gateway
Menambahkan koneksi sumber data ke gateway SSAS
Masukkan Nama sumber data, jenis sumber data, Server, database, nama pengguna dan kata sandi yang dikenali direktori aktif.
Untuk informasi selengkapnya tentang membuat dan mengelola gateway, lihat Menambahkan atau menghapus sumber data gateway.
Memberikan izin kepada perwakilan layanan atau pengguna master di gateway
Pengguna yang menghasilkan token semat juga memerlukan salah satu izin berikut:
Izin admin gateway
Sumber data meniru izin (ReadOverrideEffectiveIdentity)
Pengguna dengan izin impersonate (override) memiliki ikon kunci di samping namanya.
Ikuti petunjuk ini untuk memberikan izin gateway kepada pengguna master, perwakilan layanan, atau profil perwakilan layanan Anda.
Lakukan salah satu hal berikut ini:
Memetakan Nama pengguna
Jika nama pengguna di direktori lokal dan direktori Microsoft Entra berbeda dan Anda ingin melihat data di portal, Anda perlu membuat tabel pemetaan pengguna yang memetakan setiap pengguna atau peran dalam ID Microsoft Entra kepada pengguna dari database lokal. Untuk petunjuk tentang pemetaan nama pengguna, buka Pemetaan ulang nama pengguna manual
Untuk informasi selengkapnya, lihat Memetakan nama pengguna untuk sumber data Analysis Services.
Membuat koneksi langsung
Setelah lingkungan disiapkan, buat koneksi langsung antara Power BI Desktop dan server SQL dan buat laporan Anda.
Mulai Power BI Desktop dan pilih Dapatkan data>Database.
Dari daftar sumber data, pilih Database SQL Server Analysis Services dan pilih Sambungkan.
Isi detail instans tabular Analysis Services Anda dan pilih Sambungkan langsung. Kemudian pilih OK.
Membuat token sematan
Untuk menyematkan laporan Anda dalam semat untuk skenario pelanggan Anda, buat token semat yang meneruskan identitas efektif ke Power BI. Semua koneksi langsung ke mesin AS memerlukan identitas yang efektif meskipun tidak ada RLS yang diterapkan.
Jika tidak ada RLS yang disiapkan, hanya Admin yang memiliki akses ke database sehingga Anda ingin menggunakan Admin sebagai identitas yang efektif.
Informasi yang diperlukan untuk menghasilkan token semat bergantung pada apakah Anda tersambung ke Power BI menggunakan perwakilan layanan atau sebagai pengguna master, dan juga jika database memiliki RLS.
- Pengguna master menyematkan token
- Perwakilan layanan atau profil perwakilan layanan menyematkan token
Untuk menghasilkan token semat, berikan informasi berikut:
- Nama pengguna (Opsional jika tidak ada RLS. Diperlukan untuk RLS) - Nama pengguna yang valid yang dikenali oleh SSAS yang akan digunakan sebagai identitas yang efektif. Jika database tidak menggunakan RLS, dan tidak ada nama pengguna yang disediakan, kredensial pengguna master akan digunakan.
- Peran (diperlukan untuk RLS) - Laporan hanya akan menampilkan data jika identitas yang efektif adalah anggota peran.
Contoh:
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Define the user identity and roles. Use one of the following:
var rlsidentity = new EffectiveIdentity( //If no RLS
username: "Domain\\Username", // can also be username@contoso.com
datasets: new List<string>{ datasetId.ToString()}
)
var rlsidentity = new EffectiveIdentity( // If RLS
username: "username@contoso.com",
roles: new List<string>{ "MyRole" },
datasets: new List<string>{ datasetId.ToString()}
)
// Create a request for getting an embed token for the rls identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { rlsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Sekarang Anda dapat menyematkan laporan di aplikasi, dan laporan Anda akan memfilter data sesuai dengan izin pengguna yang mengakses laporan.
Pertimbangan dan batasan
CustomData tidak didukung.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk