Lue englanniksi

Jaa


Rivitason suojauksen käyttöönotto paikallisessa Analysis Services -taulukkomallissa

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.

  • Luo uusi suojaustaulukko AdventureworksDW2012-tietokannassa
  • Kokoa taulukkomalli tarvittavilla fakta- ja dimensiotaulukoilla
  • Käyttäjäroolien ja käyttöoikeuksien määrittäminen
  • Ota käyttöön Analysis Services -taulukkoesiintymän malli
  • Luo Power BI Desktop -raportti, jossa näytetään raporttia käyttävälle käyttäjälle räätälöidyt tiedot
  • Ota raportti käyttöön Power BI -palvelu
  • Luo raporttiin perustuva uusi koontinäyttö
  • Koontinäytön jakaminen työtovereille

Tämä opetusohjelma edellyttää AdventureworksDW2012-tietokantaa.

Tehtävä 1: käyttäjän suojaustaulukon luominen ja tietojen yhteyden määrittäminen

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

  1. Luo taulukko AdventureworksDW2012:ssa alla kuvatulla DimUserSecurity tavalla. Voit luoda taulukon SQL Server Management Studion (SSMS) avulla.

    Luo DimUserSecurity-taulukko

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

    Viiteavainsuhteet

  3. 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ä:

    DimUserSecurity-taulukko, jossa on esimerkkikäyttäjiä

    Näet nämä käyttäjät myös tulevissa tehtävissä.

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

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

Tehtävä 2: Fakta- ja dimensiotaulukoita sisältävän taulukkomallin luominen

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.

  1. Tuo malliin kaikki tarvittavat taulukot alla esitetyllä tavalla.

    Tuotu SQL Serveriin käytettäväksi tietotyökalujen kanssa

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

  3. Lisää Roolien hallinnan jäsenet -kohtaan käyttäjät, jotka määritit DimUserSecurity taulukossa tehtävässä 1.

    Käyttäjien lisääminen roolien hallintaan

  4. Lisää seuraavaksi asianmukaiset funktiot sekä - että DimSalesTerritory DimUserSecurity -taulukoille alla olevassa Rivisuodattimet-välilehdessä näytetyllä tavalla.

    Lisää funktioita rivisuodattimiin

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

    DAX
        =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 -SalesTerritoryKeyLOOKUPVALUEarvojoukon -funktion palautuksia käytetään sitten rajoittamaan -taulukossa näkyviä DimSalesTerritoryrivejä. Vain sellaiset rivit näytetään, SalesTerritoryKey joissa -arvo on funktion LOOKUPVALUE palauttamia tunnuksia.

  6. Lisää taulukolle DimUserSecurity DAX-suodattimen sarakkeeseen seuraava kaava:

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

Tehtävä 3: Tietolähteiden lisääminen paikallisessa tietoyhdyskäytävässä

Kun taulukkomuotoinen malli on otettu käyttöön ja valmis kulutukseen, sinun on lisättävä tietolähdeyhteys paikalliseen Analysis Services -taulukkopalvelimeen.

  1. Jotta voit Power BI -palvelu käyttää paikallista analysointipalvelua, paikallisen tietoyhdyskäytävän on oltava asennettuna ja määritettynä ympäristöösi.

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

    Luo tietolähdeyhteys

Kun tämä toimenpide on valmis, yhdyskäytävä on määritetty ja valmis käsittelemään paikallista Analysis Services -tietolähdettä.

Tehtävä 4: Analyysipalveluiden taulukkomalliin perustuvan raportin luominen Power BI Desktopilla

  1. Käynnistä Power BI Desktop ja valitse Nouda tiedot>Tietokanta.

  2. Valitse tietolähteiden luettelosta SQL Server Analysis Services -tietokanta ja valitse Näyttöyhteys.

    SQL Server Analysis Services -tietokannan Näyttöyhteys

  3. Täytä taulukkomuotoisen Analysis Services -esiintymän tiedot ja valitse Näyttöyhteys reaaliajassa. Valitse sitten OK.

    Analysis Services -tiedot

    Dynaaminen suojaus toimii Power BI:ssä vain reaaliaikaisella yhteydellä.

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

  5. Valitse Kentät-ruudussa FactInternetSales-taulukosta SalesAmount-mittari ja SalesTerritory-taulukosta SalesTerritoryRegion-dimensio.

  6. Emme tällä kertaa lisää enempää sarakkeita, jotta raportista ei tule liian monimutkainen. Tiedot esitetään kuvaavammin, kun visualisointi muutetaan rengaskaavioksi.

    Rengaskaavion visualisointi

  7. Kun raportti on valmis, voit julkaista sen suoraan Power BI -portaaliin. Valitse Power BI Desktopin Aloitus-valintanauhasta Julkaise.

Tehtävä 5: Koontinäytön luominen ja jakaminen

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.

Power BI -palvelu koontinäyttö

Nyt Grace jakaa koontinäytön työtoverilleen Ritalle, joka vastaa Australian alueen myynnistä.

Power BI -koontinäytön jakaminen

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.

Tehtävä 6: Taustalla tapahtuvien näkymien ymmärtäminen

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.

DAX-kysely palaa takaisin Analysis Services -malliin

Alla näet myös DAX-kyselyn, joka suoritetaan raportin tietojen täyttämiseksi.

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

Huomioitavia seikkoja

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