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 customData
yeni roller oluşturmanızı öneririz. veya işlevlerine sahip username
userPrincipalName
rolleri, ile değiştirirseniz customData
de kullanabilirsiniz.
Yeni bir rol oluşturmak ve işlevi role eklemek customData
için bu adımları izleyin.
Analysis Services sunucusunda bir rol oluşturun.
Genel ayarlarında bir Rol Adı girin ve veritabanı izinlerini Salt okunur olarak ayarlayın.
Ü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.
Satır filtreleri ayarlarında işlevini kullanarak
CUSTOMDATA()
DAX sorgunuzu ayarlayın.
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.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin