Rivitason suojaus (RLS) Power BI:ssä

Power BI:n rivitason suojauksen (RLS) avulla voidaan rajoittaa tietojen käyttöä tietyille käyttäjille. Suodattimet rajoittavat tietojen käyttöä rivitasolla ja voit määrittää roolien sisäisiä suodattimia. Power BI -palvelussa työtilan jäsenillä on pääsy työtilan tietojoukkoihin. Rivitason suojaus ei rajoita näiden tietojen käyttöoikeuksia.

Voit määrittää rivitason suojauksen Power BI:hin tuoduille tietomalleille Power BI Desktopin avulla. Voit myös määrittää rivitason suojauksen tietojoukoille, jotka käyttävät DirectQueryä, kuten SQL Serveriä. Reaaliaikaisia Analysis Services- tai Azure Analysis Services -yhteyksiä varten rivitason suojaus määritetään mallissa, ei Power BI Desktopissa. Suojausvaihtoehtoa ei näy reaaliaikaisen yhteyden tietojoukoille.

Roolien ja sääntöjen määrittäminen Power BI Desktopissa

Power BI Desktopissa voit määrittää rooleja ja sääntöjä. Kun julkaiset Power BI:ssä, myös roolimääritykset julkaistaan.

Voit määrittää käyttöoikeusroolit seuraavien ohjeiden mukaisesti.

  1. Tuo tietoja Power BI Desktop ‑raporttiin tai määritä DirectQuery-yhteys.

    Huomautus

    Power BI Desktopissa ei voi määrittää rooleja reaaliaikaisille Analysis Services -yhteyksille. Ne täytyy määrittää Analysis Services -mallin sisältä.

  2. Valitse Mallinnus-välilehdeltä Roolien hallinta.

    Select Manage Roles

  3. Valitse Roolien hallinta -ikkunassa Luo.

    Select Create

  4. Anna roolille nimi Roolit-kohdassa.

    Huomautus

    Et voi määrittää roolia pilkulla, esimerkiksi London,ParisRole.

  5. Valitse Taulukot-kohdassa taulukko, johon haluat käyttää DAX-sääntöä.

  6. Kirjoita DAX-lausekkeet Taulukkosuodattimen DAX-lauseke -ruutuun. Tämä lauseke palauttaa arvon tosi tai epätosi. Esimerkiksi: [Entity ID] = “Value”.

    Manage roles window

    Huomautus

    Voit käyttää lausekkeessa funktiota username() . Huomaa, että username() on Power BI Desktopissa muodossa TOIMIALUE\käyttäjänimi. Power BI -palvelussa ja Power BI -raporttipalvelimessa se ilmoitetaan täydellisenä käyttäjätunnuksena. Vaihtoehtoisesti voit käyttää funktiota userprincipalname(), joka palauttaa aina käyttäjän täydellisen käyttäjätunnuksen, username@contoso.com.

  7. Kun olet luonut DAX-lausekkeen, vahvista se valitsemalla lausekeruudun yläpuolelta valintamerkkikuvake.

    Validate DAX expression

    Huomautus

    Tässä lausekeruudussa voit erotella DAX-funktioiden argumentit pilkuilla, vaikka käyttäisit aluekohtaisia asetuksia, joissa yleensä käytetään puolipisteitä erottimina (esimerkiksi Ranska tai Saksa).

  8. Valitse Tallenna.

Käyttäjille ei voi määrittää roolia Power BI Desktopissa. Voit määrittää ne Power BI -palvelussa. Voit ottaa käyttöön Power BI Desktopin dynaamiset suojausominaisuudet hyödyntämällä username() - tai userprincipalname() -DAX-funktioita, kun oikeat suhteet on määritetty.

Oletuksena rivitason suojauksen suodatuksessa käytetään yksisuuntaisia suodattimia riippumatta siitä, onko suhteet määritetty yksi- vai kaksisuuntaisiksi. Voit ottaa kaksisuuntaisen ristisuodatuksen manuaalisesti käyttöön rivitason suojauksen yhteydessä valitsemalla suhteen ja valitsemalla Ota suojaussuodattimet käyttöön molempiin suuntiin -valintaruudun. Valitse tämä vaihtoehto, kun olet ottanut käyttöön myös dynaamisen rivitason suojauksen palvelintasolla, jolla rivitason suojaus perustuu käyttäjänimeen tai kirjautumistunnukseen.

Lisätietoja on artikkelissa Kaksisuuntainen ristiinsuodatus käyttämällä DirectQueryä Power BI Desktopissa ja teknisessä artikkelissa Taulukkomuotoisen liiketoimintatietojen semanttisen mallin suojaaminen.

Apply Security Filter

Roolien vahvistaminen Power BI Desktopissa

Kun olet luonut roolit, voit testata niiden tuloksia Power BI Desktopissa.

  1. Valitse Mallinnus-välilehdeltäNäytä nimellä.

    Select View as Roles

    Näytä rooleina -ikkuna tulee näkyviin ja näet luomasi roolit.

    View as roles window

  2. Valitse luomasi rooli ja valitse sitten OK, jos haluat ottaa roolin käyttöön.

    Raportit hahmontavat ainoastaan ne tiedot, jotka koskevat kyseistä roolia.

  3. Voit myös valita toisen käyttäjän ja määrittää tietyn käyttäjän.

    Select Other user

    On parasta määrittää täydellinen käyttäjätunnus (UPN), koska sitä Power BI -palvelu ja Power BI -raporttipalvelin käyttävät.

    Toinen käyttäjä näyttää eri tuloksia Power BI Desktopissa ainoastaan, jos käytössäsi on dynaaminen tietoturva, joka perustuu DAX-lausekkeisiin.

  4. Valitse OK.

    Raportit hahmonnetaan sen perusteella, mitä käyttäjä näkee.

    Huomautus

    Näytä roolina -ominaisuus ei toimi DirectQuery-malleissa, joissa Single Sign-On (SSO) on käytössä.

Nyt kun olet vahvistanut roolit Power BI Desktop, jatka julkaisua ja julkaise se Power BI -palvelu.

Mallin suojauksen hallinta

Jos haluat hallita tietomallisi suojausta, avaa työtila, johon tallensit raporttisi Power BI -palvelu ja toimi seuraavasti:

  1. Valitse Power BI -palvelussa tietojoukon Lisää asetuksia -valikko. Tämä valikko tulee näkyviin, kun pidät hiiriosoitinta tietojoukon nimen kohdalla, riippumatta siitä, valitsetko sen siirtymisvalikosta vai työtilasivulta.

    More options menu in workspace

    More options menu in navigation menu

  2. Valitse Suojaus.

    Select security from more options menu

Suojaus-toiminto vie sinut Role-Level Suojaus -sivulle, jossa lisäät jäseniä Power BI Desktop luomaasi rooliin. Osallistuja (ja korkeammat työtilaroolit) näkevät suojauksen ja voivat määrittää käyttäjiä rooliin.

Voit vain luoda tai muokata rooleja Power BI Desktopissa.

Jäsenien käsitteleminen

Jäsenien lisääminen

Power BI -palvelu voit lisätä jäsenen rooliin kirjoittamalla käyttäjän tai käyttöoikeusryhmän sähköpostiosoitteen tai nimen. Et voi lisätä Power BI:ssä luotuja ryhmiä. Voit lisätä jäseniä, jotka ovat organisaatiosi ulkopuolisia henkilöitä.

Voit määrittää rivitason suojauksen seuraavien ryhmien avulla.

  • Jakeluryhmä
  • Sähköpostia käyttävä ryhmä
  • Käyttöoikeusryhmä

Huomaa kuitenkin, että Office 365 ryhmiä ei tueta eikä niitä voi lisätä mihinkään rooleihin.

Add a member

Roolin nimen tai jäsenten vieressä suluissa olevasta luvusta voit myös nähdä, kuinka monta jäsentä rooliin kuuluu.

Members in role

Jäsenien poistaminen

Voit poistaa jäseniä valitsemalla hänen nimensä vieressä olevan X-merkin.

Remove member

Roolin vahvistaminen Power BI -palvelussa

Voit varmistaa, että määrittämäsi rooli toimii oikein Power BI -palvelu testaamalla roolin.

  1. Valitse Enemmän vaihtoehtoja (...) roolin vierestä.
  2. Valitse Testaa tietoja roolina.

Test as role

Näyttöön tulevat raportit, jotka ovat käytettävissä kyseiselle roolille. Koontinäytöt eivät näy tässä näkymässä. Sivun otsikossa näkyy käytettävä rooli.

Screenshot of Now viewing as Eastern US.

Testaa muita rooleja tai roolien yhdistelmiä valitsemalla Tarkastellaan nyt seuraavana.

Test other roles

Voit halutessasi tarkastella tietoja tiettynä henkilönä tai valita käytettävissä olevien roolien yhdistelmän ja vahvistaa, että ne toimivat.

Palaa normaaliin näkymään valitsemalla Takaisin rivitason suojaukseen.

Huomautus

Testaa roolina -ominaisuus ei toimi DirectQuery-malleissa, joissa Single Sign-On (SSO) on käytössä.

DAX-funktion Username() tai userprincipalname() käyttö

Voit hyödyntää tietojoukkosi DAX-funktioita username() tai userprincipalname( ). Niitä voi käyttää lausekkeissa Power BI Desktopissa. Kun julkaiset mallin, sitä käytetään Power BI -palvelussa.

Power BI Desktopissa username() palauttaa käyttäjän muodossa TOIMIALUE\Käyttäjä ja userprincipalname() palauttaa käyttäjän muodossa user@contoso.com.

Power BI -palvelussa sekä username() että userprincipalname() palauttavat käyttäjän täydellisen käyttäjätunnuksen (UPN). Se on samaa muotoa kuin sähköpostiosoitteet.

Rivitason suojauksen käyttäminen työtilojen kanssa Power BI:ssä

Jos julkaiset Power BI Desktop -raportin uuteen työtilakokemukseen Power BI -palvelu, RLS-rooleja sovelletaan jäseniin, joille on määritetty Katselija-rooli työtilassa. Vaikka katselijat saisivat tietojoukkoon muodostamisoikeudet, rivitason suojaus on silti voimassa. Jos esimerkiksi muodostamisoikeudet käyttävät Analysoi-toimintoa Excel, RLS suojaa heidän tietonäkymänsä. Työtilan jäsenillä, joille on määritetty Hallinta, jäsen tai osallistuja, on tietojoukon muokkausoikeus, joten rivitason suojaus ei koske heitä. Jos haluat, että rivitason suojaus koskee työtilan henkilöitä, voit määrittää heille vain Katselija-roolin . Lue lisää uusien työtilojen rooleista.

Varoitus

Jos olet määrittänyt perinteisen työtilan niin, että jäsenillä on muokkausoikeudet, RLS-rooleja ei sovelleta niihin. Käyttäjät voivat nähdä kaikki tiedot. Lue lisää perinteisistä työtiloista.

Group settings

Huomioitavat asiat ja rajoitukset

Pilvimallien rivitason suojauksen tämänhetkiset rajoitukset ovat seuraavat:

  • Jos määritit aiemmin roolit ja säännöt Power BI -palvelussa, sinun on luotava ne uudelleen Power BI Desktopissa.
  • Voit määrittää rivitason suojauksen vain tietojoukoille, jotka on luotu Power BI Desktopin avulla. Jos haluat ottaa rivitason suojauksen käyttöön tietojoukoille, jotka on luotu Excelin avulla, sinun on ensin muunnettava tiedostosi Power BI Desktop (PBIX) -tiedostoiksi. Lisätietoja.
  • Palvelun päänimiä ei voi lisätä RLS-rooliin. Näin ollen rivitason suojausta ei käytetä sovelluksille, jotka käyttävät palvelun päänimeä lopullisena voimassa olevana käyttäjätietona.
  • Vain tuonti- ja DirectQuery-yhteyksiä tuetaan. Reaaliaikaisista yhteyksistä Analysis Servicesiin huolehditaan paikallisessa mallissa.
  • Testaa roolina/Näytä roolina -ominaisuus ei toimi DirectQuery-malleissa, joissa On käytössä Single Sign-On (SSO).

Ongelma: julkaiseminen uudelleen, kun rivitason suojaus on määritetty

On olemassa tunnettu ongelma, jossa saat virheviestin, jos yrität julkaista aiemmin julkaistun raportin Power BI Desktop. Skenaario on seuraava:

  1. Annalla on tietojoukko, joka on julkaistu Power BI -palveluun ja jolle on määritetty rivitason suojaus.

  2. Anna päivittää raportin Power BI Desktopissa ja julkaisee sen uudelleen.

  3. Anna kohtaa virheen.

Vaihtoehtoinen menetelmä

Julkaise Power BI Desktop -tiedosto uudelleen Power BI -palvelusta, kunnes tämä ongelma on ratkaistu. Voit tehdä sen valitsemalla Nouda tiedot>Tiedostot.

Ongelma: useita rooleja ja rajoitetut suhteet

Saat virhesanoman, jos kuulut useisiin rivitason suojauksen rooleihin ja vähintään yksi rooleista on riippuvainen rajoitetusta suhteesta.

Ota huomioon seuraava tietomalli:

A Power BI data model showing Sales, Product and Customer. A limited relationship exist between Sales and Customer because the tables originate from a different source.

Tässä yksinkertaistetussa tietomallissa, joka yhdistää tietoja kahdesta Power BI tietojoukosta, on olemassa kaksi suhdetta:

  • Tavallinen suhde myynti- ja tuote-kohteiden välillä.
  • Rajallinen suhde myynti- ja asiakassuhteiden välillä. Tämä suhde on rajoitettu, koska Asiakas on eri lähderyhmässä. Tämä ei ole ainoa syy siihen, miksi suhdetta voidaan rajoittaa. Lisätietoja on kohdassa Rajoitetut yhteydet.

Lisäksi tässä tietomallissa on määritetty kaksi RLS-roolia:

  • RLS_Product, joka on määritetty Tuote-kohdassa ja joka rajoittaa tuotetietojen käyttöä.
  • RLS_Customer, joka on määritetty Asiakas-kohdassa ja joka rajoittaa asiakastietojen käyttöä.

Käyttäjä A kuuluu sekä RLS_Product että RLS_Customer. Kun käyttäjä A käyttää raportin tietoja, sekä RLS_Product että RLS_Customer arvioidaan. RLS_Customer arvioimiseksi tiedot on jaettava Myynti- ja Asiakas-kohteiden välisen rajoitetun suhteen kautta. Tämä jakaminen saattaa ajoittain paljastaa tuotteita koskevia mahdollisia tietoja. Tämän vuoksi Power BI ei salli tätä jakamista, vaan luo seuraavan virheen:

"Käyttäjä kuuluu useisiin rooleihin 'RLS_Product, RLS_Customer', joissa on suojaussuodattimia, joita ei tueta, kun jossakin rooleista on suodattimia, jotka vaikuttavat taulukkoon Sales with SecurityFilteringBehavior=Both relationships."

Vaihtoehtoinen menetelmä

Voit välttää tämän virheen valitsemalla jonkin seuraavista tavoista:

  • Jos se on mahdollista, älä lisää yhtään käyttäjää useisiin rivitason suojauksen rooleihin. Yllä olevassa skenaariossa voimme luoda toisen RLS-roolin, kuten RLS_Product_Customer, joka yhdistää sekä RLS_Product että RLS_Customer määritetyt RLS-suodattimet. Seuraavaksi käyttäjälle A voidaan määrittää vain RLS_Product_Customer ja poistaa käyttäjä sekä RLS_Product että RLS_Customer.
  • Määritä rivitason suojauksen roolit vain yhdelle lähderyhmälle. Jos käyttäjän on tarpeen kuulua useisiin rivitason suojauksen rooleihin, varmista, että kaikki rooleissa määritetyt RLS-suodattimet on määritetty yhden lähderyhmän taulukoille. Yllä olevassa skenaariossa voidaan välttää virhe määrittämällä RLS_Customer myynti- ja tuoteryhmälle.

Huomautus

Tiedämme, että monissa tilanteissa Power BI on liian rajoittava ja tiedot voidaan turvallisesti jakaa kyseessä olevien lähteiden välillä. Pyrimme parhaillaan julkaisemaan ratkaisua tässä tilanteessa, mutta harkitse jonkin edellä mainittujen ratkaisujen hyväksymistä.

UKK

Kysymys: Entä jos olen aiemmin luonut rooleja ja sääntöjä tietojoukolle Power BI -palvelussa? Toimivatko ne edelleen, jos en tee mitään?
Vastaus: Visualisointeja ei hahmonneta oikein. Sinun on luotava roolit ja säännöt uudelleen Power BI Desktopissa ja sen jälkeen julkaistava ne Power BI -palveluun.

Kysymys: Voinko luoda nämä roolit Analysis Services -tietolähteille?
Vastaus: Voit, jos tiedot on tuotu Power BI Desktopiin. Jos käytössäsi on reaaliaikainen yhteys, et pysty määrittämään rivitason suojausta Power BI -palvelun sisällä. Se määritetään Analysis Services -mallissa paikallisesti.

Kysymys: Voinko käyttää rivitason suojausta rajoittamaan käyttäjien käytössä olevia sarakkeita tai mittareita?
Vastaus: Ei. Jos käyttäjällä on tietyn tietorivin käyttöoikeus, hän voi nähdä kaikki kyseisen rivin tietosarakkeet.

Kysymys: Salliiko rivitason suojaus tarkkojen tietojen piilottamisen ja samalla visualisoinneissa olevien yhteenvetotietojen käytön?
Vastaus: Ei, voit suojata yksittäisiä tietorivejä, mutta käyttäjät voivat aina nähdä tarkat tiedot tai yhteenvetotiedot.

Kysymys: Tietolähteeseeni on jo määritetty käyttöoikeusrooleja (esimerkiksi SQL Server rooleja tai SAP BW -rooleja). Mikä niiden ja RLS:n suhde on?
Vastaus: Vastaus riippuu siitä, tuotko tietoja, vai käytätkö DirectQueryä. Jos tuot tietoja Power BI -tietojoukkoosi, tietolähteesi käyttöoikeusrooleja ei käytetä. Määritä tällöin RLS, jos haluat pakottaa suojaussäännöt käyttäjille, jotka muodostavat yhteyden Power BI:ssä. Jos käytät DirectQuerya, käytetään tietolähteesi käyttöoikeusrooleja. Kun käyttäjä avaa raportin, Power BI lähettää pohjana olevaan tietolähteeseen kyselyn, joka soveltaa tietoihin käyttöoikeussääntöjä käyttäjän tunnistetietojen perusteella.

Seuraavat vaiheet