Tapahtumat
14. helmik. klo 16 - 31. maalisk. klo 16
Kun sinulla on neljä mahdollisuutta osallistua, voit voittaa konferenssipaketin ja päästä LIVE Grand Finaleen Las Vegasissa
LisätietojaTätä selainta ei enää tueta.
Päivitä Microsoft Edgeen, jotta voit hyödyntää uusimpia ominaisuuksia, suojauspäivityksiä ja teknistä tukea.
Tässä opetusohjelmassa näytetään semanttisen malliesimerkkien avulla, miten voit ottaa käyttöön rivitason suojauksen paikallisessa Analysis Services -taulukkomallissa ja käyttää sitä Power BI -raportissa.
Tämä opetusohjelma edellyttää AdventureworksDW2012-tietokantaa.
Lukuiset artikkelit opastavat rivitason dynaamisen suojauksen määrittämisessä taulukkomuotoiseen SQL Server Analysis Services (SSAS) -malliin.
Nämä vaiheet edellyttävät AdventureworksDW2012-relaatiotietokannan käyttöä.
Luo taulukko AdventureworksDW2012:ssa alla kuvatulla DimUserSecurity
tavalla. Voit luoda taulukon SQL Server Management Studion (SSMS) avulla.
Kun olet luonut ja tallentanut taulukon, sinun on muodostettava yhteys taulukon sarakkeen SalesTerritoryID
ja DimSalesTerritory
taulukon sarakkeen SalesTerritoryKey
välille DimUserSecurity
alla kuvatulla tavalla.
Napsauta SSMS:ssä hiiren kakkospainikkeella DimUserSecurity ja valitse Rakenne. Valitse sitten Taulukon suunnitteluohjelman>suhteet.... Kun olet valmis, tallenna taulukko.
Lisää käyttäjiä taulukkoon. Napsauta hiiren kakkospainikkeella DimUserSecurity ja valitse Muokkaa ylintä 200 riviä. Kun olet lisännyt käyttäjiä, DimUserSecurity
taulukon pitäisi näyttää samalta kuin seuraavassa esimerkissä:
Näet nämä käyttäjät myös tulevissa tehtävissä.
Tee seuraavaksi sisäliitos -taulukon kanssa. Taulukon avulla DimSalesTerritory
näet käyttäjän alueeseen liittyvät tiedot. Tässä oleva SQL-koodi tekee sisäliitoksen, ja kuvassa näytetään, miltä taulukko sitten näyttää.
select b.SalesTerritoryCountry, b.SalesTerritoryRegion, a.EmployeeID, a.FirstName, a.LastName, a.UserName from [dbo].[DimUserSecurity] as a join [dbo].[DimSalesTerritory] as b on a.[SalesTerritoryID] = b.[SalesTerritoryKey]
Vaiheessa 2 luodun suhteen ansiosta liitetty taulukko näyttää kunkin myyntialueen vastuuhenkilön. Voit esimerkiksi nähdä, että Rita Santos on vastuussa Australiasta.
Kun relaatiotietovarasto on paikallaan, sinun on määritettävä taulukkomalli. Voit luoda mallin SQL Server Data Tools (SSDT) -työkaluilla . Lisätietoja on kohdassa Uuden taulukkomalliprojektin luominen.
Tuo malliin kaikki tarvittavat taulukot alla esitetyllä tavalla.
Kun olet tuonut tarvittavat taulukot, sinun on määritettävä rooli nimeltä SalesTerritoryUsers, jolla on lukuoikeus. Valitse Malli-valikko SQL Server Data Tools -työkaluissa ja valitse sitten Roolit. Valitse Roolien hallinta -kohdasta Uusi.
Lisää Roolien hallinnan jäsenet -kohtaan käyttäjät, jotka määritit DimUserSecurity
taulukossa tehtävässä 1.
Lisää seuraavaksi asianmukaiset funktiot sekä - että DimSalesTerritory
DimUserSecurity
-taulukoille alla olevassa Rivisuodattimet-välilehdessä näytetyllä tavalla.
Funktio LOOKUPVALUE
palauttaa arvot sarakkeelle, jossa Windows-käyttäjänimi on sama kuin -funktion USERNAME
palauttava käyttäjänimi. Voit sitten rajoittaa kyselyt alueisiin, joissa LOOKUPVALUE
palautetut arvot vastaavat saman tai liittyvän taulukon arvoja. Kirjoita seuraava kaava DAX-suodattimen sarakkeeseen:
=DimSalesTerritory[SalesTerritoryKey]=LOOKUPVALUE(DimUserSecurity[SalesTerritoryID], DimUserSecurity[UserName], USERNAME(), DimUserSecurity[SalesTerritoryID], DimSalesTerritory[SalesTerritoryKey])
Tässä kaavassa LOOKUPVALUE
funktio palauttaa kaikki arvot -sarakkeelle DimUserSecurity[SalesTerritoryID]
, jossa - DimUserSecurity[UserName]
käyttäjänimi on sama kuin nykyinen kirjautuneena oleva Windows-käyttäjänimi, ja DimUserSecurity[SalesTerritoryID]
-käyttäjänimi on sama kuin DimSalesTerritory[SalesTerritoryKey]
-
Tärkeä
DAX-funktiota USERELATIONSHIP ei tueta rivitason suojausta käytettäessä.
Myynnin -SalesTerritoryKey
LOOKUPVALUE
arvojoukon -funktion palautuksia käytetään sitten rajoittamaan -taulukossa näkyviä DimSalesTerritory
rivejä. Vain sellaiset rivit näytetään, SalesTerritoryKey
joissa -arvo on funktion LOOKUPVALUE
palauttamia tunnuksia.
Lisää taulukolle DimUserSecurity
DAX-suodattimen sarakkeeseen seuraava kaava:
=FALSE()
Tämä kaava määrittää, että kaikkien sarakkeiden ratkaisu on false
. Se tarkoittaa, että DimUserSecurity
taulukon sarakkeista ei voi tehdä kyselyjä.
Seuraavaksi malli käsitellään ja otetaan käyttöön. Lisätietoja on kohdassa Käyttöönotto.
Kun taulukkomuotoinen malli on otettu käyttöön ja valmis kulutukseen, sinun on lisättävä tietolähdeyhteys paikalliseen Analysis Services -taulukkopalvelimeen.
Jotta voit Power BI -palvelu käyttää paikallista analysointipalvelua, paikallisen tietoyhdyskäytävän on oltava asennettuna ja määritettynä ympäristöösi.
Kun yhdyskäytävä on määritetty oikein, sinun on luotava tietolähdeyhteys Analysis Servicesin taulukkomuotoiseen esiintymään. Lisätietoja on artikkelissa Tietolähteen hallinta – Analysis Services.
Kun tämä toimenpide on valmis, yhdyskäytävä on määritetty ja valmis käsittelemään paikallista Analysis Services -tietolähdettä.
Käynnistä Power BI Desktop ja valitse Nouda tiedot>Tietokanta.
Valitse tietolähteiden luettelosta SQL Server Analysis Services -tietokanta ja valitse Näyttöyhteys.
Täytä taulukkomuotoisen Analysis Services -esiintymän tiedot ja valitse Näyttöyhteys reaaliajassa. Valitse sitten OK.
Dynaaminen suojaus toimii Power BI:ssä vain reaaliaikaisella yhteydellä.
Käyttöön otettu malli on nyt Analysis Services -esiintymässä. Valitse asianmukainen malli ja sitten OK.
Power BI Desktop näyttää nyt kaikki käytettävissä olevat kentät Kentät-ruudun oikeanpuoleisessa pohjassa.
Valitse Kentät-ruudussa FactInternetSales-taulukosta SalesAmount-mittari ja SalesTerritory-taulukosta SalesTerritoryRegion-dimensio.
Emme tällä kertaa lisää enempää sarakkeita, jotta raportista ei tule liian monimutkainen. Tiedot esitetään kuvaavammin, kun visualisointi muutetaan rengaskaavioksi.
Kun raportti on valmis, voit julkaista sen suoraan Power BI -portaaliin. Valitse Power BI Desktopin Aloitus-valintanauhasta Julkaise.
Olet luonut raportin ja julkaissut sen Power BI - palveluun. Nyt voit käyttää edellisissä vaiheissa luotua esimerkkiä mallin suojausskenaarion havainnollistamiseen.
Myyntipäällikön roolinsa aikana käyttäjä Grace voi nähdä kaikkien eri myyntialueiden tiedot. Grace luo tämän raportin ja julkaisee sen Power BI -palvelu. Tämä raportti luotiin edellisissä tehtävissä.
Kun Grace julkaisee raportin, hän luo seuraavaksi Power BI -palvelu koontinäytön, jonka nimi on raportin perusteella TabularDynamicSec. Huomaa, että seuraavassa kuvassa Grace voi nähdä kaikkien myyntialueiden tiedot.
Nyt Grace jakaa koontinäytön työtoverilleen Ritalle, joka vastaa Australian alueen myynnistä.
Kun Rita kirjautuu sisään Power BI -palvelu ja tarkastelee Gracen luomaa jaettua koontinäyttöä, vain Australian alueen myynti on näkyvissä.
Onnittelut! Power BI -palvelu näyttää paikallisessa Analysis Services -taulukkomallissa määritetyn dynaamisen rivitason suojauksen. Power BI käyttää -ominaisuutta EffectiveUserName
lähettämään senhetkisen Power BI -käyttäjän kirjautumistiedot paikalliseen tietolähteeseen kyselyiden suorittamiseksi.
Tässä tehtävässä oletetaan, että SQL Serverin profilointi ovat sinulle tuttuja, koska sinun on tallennettava SQL Server Profiler -jäljitys paikallisesta, taulukkomuotoisesta SSAS-esiintymästä.
Istunto käynnistetään heti, kun käyttäjä Rita käyttää koontinäyttöä Power BI -palvelu. Huomaat, että salesterritoryusers-rooli astuu heti voimaan. Käytettävä käyttäjänimi on <EffectiveUserName>rita@contoso.com</EffectiveUserName>
<PropertyList><Catalog>DefinedSalesTabular</Catalog><Timeout>600</Timeout><Content>SchemaData</Content><Format>Tabular</Format><AxisFormat>TupleFormat</AxisFormat><BeginRange>-1</BeginRange><EndRange>-1</EndRange><ShowHiddenCubes>false</ShowHiddenCubes><VisualMode>0</VisualMode><DbpropMsmdFlattened2>true</DbpropMsmdFlattened2><SspropInitAppName>PowerBI</SspropInitAppName><SecuredCellValue>0</SecuredCellValue><ImpactAnalysis>false</ImpactAnalysis><SQLQueryMode>Calculated</SQLQueryMode><ClientProcessID>6408</ClientProcessID><Cube>Model</Cube><ReturnCellProperties>true</ReturnCellProperties><CommitTimeout>0</CommitTimeout><ForceCommitTimeout>0</ForceCommitTimeout><ExecutionMode>Execute</ExecutionMode><RealTimeOlap>false</RealTimeOlap><MdxMissingMemberMode>Default</MdxMissingMemberMode><DisablePrefetchFacts>false</DisablePrefetchFacts><UpdateIsolationLevel>2</UpdateIsolationLevel><DbpropMsmdOptimizeResponse>0</DbpropMsmdOptimizeResponse><ResponseEncoding>Default</ResponseEncoding><DirectQueryMode>Default</DirectQueryMode><DbpropMsmdActivityID>4ea2a372-dd2f-4edd-a8ca-1b909b4165b5</DbpropMsmdActivityID><DbpropMsmdRequestID>2313cf77-b881-015d-e6da-eda9846d42db</DbpropMsmdRequestID><LocaleIdentifier>1033</LocaleIdentifier><EffectiveUserName>rita@contoso.com</EffectiveUserName></PropertyList>
Analysis Services muuntaa pyynnön käytettävän käyttäjänimen pyynnön perusteella todellisiksi contoso\rita
tunnistetietoiksi paikallisen Active Directory -hakemiston kyselyn jälkeen. Kun Analysis Services saa tunnistetiedot, Analysis Services palauttaa tiedot, joita käyttäjällä on oikeus käyttää.
Jos koontinäytössä tapahtuu muuta toimintaa, Analysis Services -taulukkomalliin palautettava erityinen kysely näkyy SQL Profilerissa DAX-kyselynä. Jos esimerkiksi Rita siirtyy koontinäytöstä pohjana olevaan raporttiin, tapahtuu seuraava kysely.
Alla näet myös DAX-kyselyn, joka suoritetaan raportin tietojen täyttämiseksi.
EVALUATE
ROW(
"SumEmployeeKey", CALCULATE(SUM(Employee[EmployeeKey]))
)
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis">``
<Catalog>DefinedSalesTabular</Catalog>
<Cube>Model</Cube>
<SspropInitAppName>PowerBI</SspropInitAppName>
<EffectiveUserName>rita@contoso.com</EffectiveUserName>
<LocaleIdentifier>1033</LocaleIdentifier>
<ClientProcessID>6408</ClientProcessID>
<Format>Tabular</Format>
<Content>SchemaData</Content>
<Timeout>600</Timeout>
<DbpropMsmdRequestID>8510d758-f07b-a025-8fb3-a0540189ff79</DbpropMsmdRequestID>
<DbPropMsmdActivityID>f2dbe8a3-ef51-4d70-a879-5f02a502b2c3</DbPropMsmdActivityID>
<ReturnCellProperties>true</ReturnCellProperties>
<DbpropMsmdFlattened2>true</DbpropMsmdFlattened2>
<DbpropMsmdActivityID>f2dbe8a3-ef51-4d70-a879-5f02a502b2c3</DbpropMsmdActivityID>
</PropertyList>
Paikallinen rivitason suojaus on käytettävissä Power BI:ssä vain reaaliaikaisella yhteydellä.
Malliin käsittelyn jälkeen tehdyt muutokset ovat heti käyttäjien, jotka käsittelevät raporttia reaaliaikaisella yhteydellä, käytettävissä Power BI -palvelu.
Tapahtumat
14. helmik. klo 16 - 31. maalisk. klo 16
Kun sinulla on neljä mahdollisuutta osallistua, voit voittaa konferenssipaketin ja päästä LIVE Grand Finaleen Las Vegasissa
LisätietojaOpetus
Moduuli
Rivitason suojauksen toteuttaminen - Training
Rivitason suojauksen (RLS) avulla voit luoda yhden raportin tai joukon raportteja, jotka koskevat tietyn käyttäjän tietoja. Tässä moduulissa opit ottamaan rivitason suojauksen käyttöön joko staattisella tai dynaamisella menetelmällä ja miten Microsoft Power BI yksinkertaistaa RLS-testausta Power BI Desktop ja Power BI -palvelu.
Sertifiointi
Microsoftin sertifiointi: Power BI:n tietoanalyytikon kumppani - Certifications
Esittele menetelmiä ja parhaita käytäntöjä, jotka ovat yhdenmukaisia microsoft Power BI:n kanssa liiketoiminnan ja teknisten vaatimusten kanssa mallinnusta, visualisointia ja analysointia varten.