Menyematkan laporan di SQL Server Analysis Services (SSAS) lokal

Berlaku untuk:✅ Power BI analitik yang disematkan untuk pelanggan Anda (Data milik aplikasi)

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.

Untuk siapa artikel ini

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. Ini termasuk:

  • Database tanpa peran RLS yang dikonfigurasi
  • 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:

  1. Menyiapkan gateway
  2. Membuat koneksi langsung
  3. Membuat token sematan

Siapkan 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:

  • Hak akses admin gateway

  • Izin peniruan identitas sumber data (ReadOverrideEffectiveIdentity)

    Pengguna dengan izin menyamar (override) memiliki ikon kunci di samping namanya.

    Cuplikan layar anggota gateway dengan ikon kunci di samping namanya.

Ikuti petunjuk ini untuk memberikan izin gateway kepada pengguna master, perwakilan layanan, atau profil perwakilan layanan Anda.

Pemetaan 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.

  1. Mulai Power BI Desktop dan pilih Dapatkan data>Database.

  2. Dari daftar sumber data, pilih Database SQL Server Analysis Services dan pilih Sambungkan.

    Sambungkan ke Database SQL Server Analysis Services.

  3. Masukkan detail instans tabular Analysis Services Anda dan pilih Sambungkan langsung. Kemudian pilih OK.

    Cuplikan layar detail Analysis Services.

Hasilkan token sematan

Untuk menyematkan laporan Anda dalam skenario sematkan untuk pelanggan Anda, hasilkan token penyematan 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.

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 efektif merupakan anggota dari peran tersebut.

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.

Membuat token sematan