Bagikan melalui


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:

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

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.

    Screenshot of a gateway member with a key icon next to their name.

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.

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

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

    Connect to SQL Server Analysis Services Database.

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

    Screenshot of Analysis Services details.

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.

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.

Membuat token sematan