Azure Analysis Services (AAS) veritabanıyla rapor ekleme

Şunlar için geçerlidir:✅ Müşterileriniz için Power BI tümleşik analizi (App-owns-data)

Bu makalede, Azure Analysis Services'te (AAS) depolanan verileri kullanan bir Power BI raporunu müşterileriniz için ekleme senaryosuna ekleme adımları açıklanmaktadır. Bu makale, veritabanının satır düzeyi güvenlik (RLS) uygulamasına bakılmaksızın AAS verileriyle rapor eklemek isteyen bağımsız yazılım geliştiricilerine (ISV) yöneliktir.

Önkoşullar

RLS ile veya RLS olmadan AAS veritabanına canlı bağlantısı olan bir rapora ihtiyacınız vardır.

Dinamik güvenlik - RLS

Raporunuzun dinamik RLS uygulamasını istiyorsanız işlevini kullanın customeData . Geçerli kimliği geçersiz kılamadığınız için, customData ile yeni roller oluşturmanızı öneririz. Ayrıca, bunları username ile değiştirirseniz userPrincipalName veya customData işlevlerine sahip rolleri de kullanabilirsiniz.

Yeni bir rol oluşturmak ve customData işlevini role eklemek için bu adımları izleyin.

  1. Analysis Services sunucusunda bir rol oluşturun.

    Analysis Services sunucusunda yeni rol oluşturma işleminin ekran görüntüsü.

  2. Genel ayarlarında bir Rol Adı girin ve veritabanı izinlerini Salt okunur olarak ayarlayın.

    Analysis Services sunucusundaki genel ayarlarda yeni bir role yeni bir ad vermenin ve bunu salt okunur olarak ayarlamanın ekran görüntüsü.

  1. Üyelik ayarlarında Gömme Belirteci - Belirteç Oluştur API'sini çağıracak kullanıcıları ekleyin. Yönetici olmayan bir hizmet sorumlusu kullanıyorsanız bunu da ekleyin.

    Analysis Services sunucusunda yeni bir role kullanıcı ekleme ekran görüntüsü.

  2. Satır filtreleri ayarlarında, CUSTOMDATA() işlevini kullanarak DAX sorgunuzu ayarlayın.

    CustomData işlevinin Analysis Services sunucusunda yeni bir rolde DAX sorgusuna nasıl ekleneceğini gösteren ekran görüntüsü.

Hizmet sorumlusu

Raporu eklemek için hizmet sorumlusu kullanıyorsanız hizmet sorumlusunun AAS'nin sunucu yöneticisi veya rol üyesi olduğundan emin olun. Hizmet sorumlusuna AAS yönetici izinleri vermek için bkz. Sunucu yöneticisi rolüne bir hizmet sorumlusu ekleme. Hizmet sorumlusunu rol üyesi olarak eklemek için Üyelik ayarlarına gidin.

Hizmet sorumlusu nesne kimliğini kullanıcı adı (etkin kimlik) olarak kullanın.

Analysis Service geçişi

Ekli bir AAS raporunuz olsa bile AAS'den Power BI Premium'a geçiş yapabilirsiniz. Ekleme Belirteci - Belirteç Oluşturma API'sini çağıran sorumlu çalışma alanının üyesi veya yöneticisi olduğu sürece, katıştırılmış raporunuz geçiş sırasında bozulmaz.

Not

Hizmet sorumlusu yönetici değilse ve geçiş yaparken bunu çalışma alanının yöneticisi yapmak istemiyorsanız, bu modeli yönetici izinleri verebileceğiniz ayrı bir çalışma alanına geçirin.

Yerleştirme belirteci oluştur

Generate Token API'sini, etkili kimliğini geçersiz kılan bir gömme belirteci oluşturmak için kullanın.

Ekleme belirteci oluşturmak için gereken bilgiler, Power BI'a (hizmet sorumlusu veya ana kullanıcı) nasıl bağlandığınıza ve veritabanında RLS olup olmadığınınıza bağlıdır.

Ekleme belirteci oluşturmak için aşağıdaki bilgileri sağlayın:

  • Kullanıcı adı (RLS yoksa isteğe bağlı. RLS için gerekli) - Kullanıcı adı API çağıranı ile aynı olmalıdır (bu durumda Ana kullanıcının UPN'si). Veritabanı RLS kullanmıyorsa ve kullanıcı adı sağlanmadıysa, ana kullanıcının kimlik bilgileri kullanılır.
  • Rol (RLS için gerekli) - Rapor, yalnızca etkin kimlik bu rolün üyesiyse verileri görüntüler.

Örnek:

Aşağıdaki üç senaryodan biri için kullanıcı kimliğini ve rollerini tanımlayın:

  • RLS uygulanmadıysa:

Etkili bir kimlik tanımlamanız gerekmez.

  • Statik RLS kullanılıyorsa:

        var rlsidentity = new EffectiveIdentity(  //If static RLS
           username: "username@contoso.com", 
           roles: new List<string>{ "MyRole" },
           datasets: new List<string>{ datasetId.ToString()}
        )
    
  • Dinamik RLS kullanıyorsanız:

        var rlsidentity = new EffectiveIdentity(  // If dynamic RLS
           username: "username@contoso.com",
           roles: new List<string>{ "MyRoleWithCustomData" },
           customData: "SalesPersonA"
           datasets: new List<string>{ datasetId.ToString()}
        )
    

    Not

    customData ekleme belirtecinde 1.024 karakterden büyük olamaz.

Ekleme belirteci oluşturmak için etkili kimliği kullanın:

public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
    PowerBIClient pbiClient = this.GetPowerBIClient();
    // 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 } // Only in cases of RLS
    );
    // Generate an embed token
    var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
    return embedToken;
}

Raporu uygulamanıza veya web sitenize eklemek için ekleme belirtecini kullanın. Raporunuz, rapordaki uygulanan RLS'ye göre verileri filtreler.