Share via


Azure Analysis Services (AAS) veritabanıyla rapor ekleme

UYGULANANLAR: Uygulama verilerin sahibidir Veriler Kullanıcıya aittir

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 olacaktır.

Dinamik güvenlik - RLS

Raporunuzun dinamik RLS uygulamasını istiyorsanız işlevini kullanın customeData . Etkin kimliği geçersiz kılamazsınız çünkü ile customDatayeni roller oluşturmanızı öneririz. veya işlevlerine sahip usernameuserPrincipalName rolleri, ile değiştirirseniz customDatade kullanabilirsiniz.

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

  1. Analysis Services sunucusunda bir rol oluşturun.

    A screenshot of creating a new role in Analysis Services server.

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

    A screenshot of giving a new role a new name and setting it to read only, in the general settings in Analysis Services server.

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

    A screenshot of adding users to a new role in Analysis Services server.

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

    A screenshot showing how to add the function customData to the DAX query in a new role in Analysis Services server.

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

Dekont

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.

Ekleme belirteci oluşturma

Etkili kimliği geçersiz kılan bir ekleme belirteci oluşturmak için Belirteç Oluştur API'sini 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 gereklidir) - Rapor yalnızca etkin kimlik rolün üyesiyse verileri görüntüler.

Örneğin:

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

  • RLS uygulanmadıysa:

Etkili bir kimlik tanımlamaya gerek yoktur.

  • 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()}
        )
    

    Dekont

    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.