Sdílet prostřednictvím


Seznam rolí

platí pro: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Role v tabulkových modelech definují oprávnění členů pro model. Členové role můžou s modelem provádět akce definované oprávněním role. Role definované s oprávněními pro čtení můžou také poskytovat větší zabezpečení na úrovni řádků pomocí filtrů na úrovni řádků.

U sémantických modelů Azure Analysis Services a Power BI musí být uživatelé přihlášeni ve vašem Microsoft Entra ID. Uživatelská jména a skupiny jsou určena e-mailovou adresou organizace nebo hlavním názvem uživatele (UPN). U služby SQL Server Analysis Services role obsahují členy uživatele určené uživatelským jménem systému Windows nebo skupinou Windows a oprávněními (čtení, proces, správce).

Důležité

Pokud pomocí sady Visual Studio vytvoříte role a přidáte uživatele do projektu tabulkového modelu, který se nasadí do služby Azure Analysis Services nebo Power BI, použijte integrovaný pracovní prostor.

Důležité

Aby se uživatelé mohli připojit k nasazenému modelu pomocí klientské aplikace pro vytváření sestav, musíte vytvořit aspoň jednu roli, která má alespoň oprávnění ke čtení. Přidejte uživatele klientské aplikace pro vytváření sestav do role jako členy.

Informace v tomto článku jsou určené pro autory tabulkových modelů, kteří definují role pomocí dialogového okna Správce rolí v SSDT. Role definované při vytváření modelu se vztahují na databázi pracovního prostoru modelu. Po nasazení databáze modelu můžou správci modelové databáze spravovat (přidávat, upravovat, odstraňovat) členy rolí pomocí aplikace SSMS.

Porozumění rolím

Role se používají ve službě Analysis Services ke správě přístupu k datům modelu. Existují dva typy rolí:

  • Role serveru je pevná role, která poskytuje přístup správce k instanci serveru Analysis Services. Role serveru se nevztahují na Power BI. Místo toho Power BI používá role pracovního prostoru.

  • Databázové role jsou definované autory modelů a správci, kteří řídí přístup k databázi modelu a datům pro uživatele.

Role definované pro tabulkový model jsou databázové role. Tyto role obsahují uživatele nebo skupiny s konkrétními oprávněními, které definují akci, kterou můžou tito členové provádět v databázi modelu. Role se vytvoří jako samostatný objekt v databázi a vztahuje se pouze na databázi, ve které je role vytvořená. Autor modelu přidá uživatele a skupiny do role. Ve výchozím nastavení má autor modelu oprávnění správce na databázovém serveru pracovního prostoru; pro nasazený model přidává členy rolí správce.

Role v tabulkových modelech je možné dále definovat pomocí filtrů řádků, označovaných také jako zabezpečení na úrovni řádků. Filtry řádků používají výrazy DAX k definování řádků v tabulce a všech souvisejících řádků v mnoha směrech, které uživatel může dotazovat. Filtry řádků pomocí výrazů DAX lze definovat pouze pro oprávnění ke čtení a čtení a zpracování . V Power BI se role modelu definují v Power BI Desktopu a vztahují se jenom na zabezpečení na úrovni řádků. Další podrobnosti najdete v části Filtry řádků dále v tomto článku.

Když ve výchozím nastavení vytvoříte nový projekt tabulkového modelu, projekt nemá definované žádné role. Role jsou definovány pomocí dialogového okna Správce rolí v SSDT. Pokud jsou role definované během vytváření modelu, použijí se u databáze pracovního prostoru modelu. Při nasazení modelu se na nasazený model použijí stejné role. Po nasazení modelu můžou členové role serveru (správce služby Analysis Services) a správci databáze spravovat role přidružené k modelu a členy přidružené k jednotlivým rolím pomocí SSMS.

Povolení

Oprávnění rolí popsaná v této části platí jenom pro Azure Analysis Services a SQL Server Analysis Services. V Power BI jsou oprávnění definovaná pro sémantický model. Další informace najdete v tématu Správa sémantického přístupu k modelu.

Každá role má jednodefinované oprávnění k databázi (s výjimkou kombinovaného oprávnění ke čtení a zpracování). Ve výchozím nastavení má nová role oprávnění Žádné . Když se členové přidají do role s oprávněním Žádné, nemůžou upravovat databázi, spouštět operaci procesu, dotazovat se na data nebo zobrazit databázi, pokud není uděleno jiné oprávnění.

Skupina nebo uživatel může být členem libovolného počtu rolí, přičemž každá role má jiné oprávnění. Pokud je uživatel členem více rolí, jsou oprávnění definovaná pro každou roli kumulativní. Pokud je například uživatel členem role s oprávněním Ke čtení a také členem role s oprávněním Žádné, má tento uživatel oprávnění ke čtení.

Každá role může mít definovaná jednu z následujících oprávnění:

Povolení Description Filtry řádků pomocí jazyka DAX
None Členové nemohou provádět žádné změny schématu databáze modelu a nemohou dotazovat data. Filtry řádků se nevztahují. Uživatelům v této roli se nezobrazují žádná data.
Čti Členové můžou dotazovat data (na základě filtrů řádků), ale nevidí databázi modelu v SSMS, nemůžou provádět žádné změny schématu databáze modelu a uživatel nemůže model zpracovat. Filtry řádků je možné použít. Uživatelům se zobrazí jenom data zadaná ve vzorci DAX filtru řádků.
Čtení a zpracování Členové mohou dotazovat data (na základě filtrů na úrovni řádků) a spouštět operace procesu spuštěním skriptu nebo balíčku, který obsahuje příkaz procesu, ale nemůžou provádět žádné změny v databázi. Uživatelé s oprávněním nemůžou zobrazit databázi modelu v aplikaci SSMS. Filtry řádků je možné použít. Dotazovat lze pouze na data specifikovaná ve vzorci DAX řádkového filtru.
Proces Členové mohou spouštět operace procesu spuštěním skriptu nebo balíčku, který obsahuje příkaz procesu. Členové nemůžou měnit schéma databáze modelu, nemůžou dotazovat data a nemůžou dotazovat databázi modelu v SSMS. Filtry řádků se nevztahují. V této roli nelze dotazovat žádná data.
Aministrátoři Členové mohou provádět úpravy schématu modelu a můžou dotazovat všechna data v návrháři modelů, klientu pro vytváření sestav a SSMS. Filtry řádků se nevztahují. Všechna data mohou být dotazována v této roli.

Poznámka:

Členové s oprávněními ke čtení a čtení a zpracování můžou dotazovat data na základě filtrů řádků, ale v SSMS neuvidí databázi modelu. Členové nemůžou provádět změny schématu databáze modelu a nemůžou model zpracovat. Ale v SQL Server Analysis Services 2019 a starších verzích mohou členové použít DMVs k určení definic metrik. SQL Server Analysis Services 2022 a novější blokují přístup k DMV kvůli lepšímu zabezpečení.

Filtry řádků

Filtry řádků, běžně označované jako zabezpečení na úrovni řádků v Power BI, definují, na které řádky v tabulce můžou členové konkrétní role dotazovat. Filtry řádků jsou definované pro každou tabulku v modelu pomocí vzorců DAX.

Filtry řádků je možné definovat pouze pro role s oprávněními ke čtenía čtení a zpracování . Ve výchozím nastavení platí, že pokud není pro určitou tabulku definován filtr řádků, můžou členové role, která má oprávnění číst nebo číst a zpracovat, dotazovat všechny řádky v tabulce, pokud se křížové filtrování nevztahuje na jinou tabulku.

Po definování filtru řádků pro určitou tabulku vzorec DAX, který se vyhodnotí jako hodnota PRAVDA/NEPRAVDA, definuje řádky, na které můžou členové dané role dotazovat. Řádky, které nejsou součástí vzorce DAX, nelze dotazovat. Pokud má například tabulka Zákazníci následující výraz filtrů řádků = Customers [Country] = "USA", členové role Sales uvidí jenom zákazníky v USA.

Filtry řádků platí pro zadané řádky i související řádky. Pokud má tabulka více relací, filtry použijí zabezpečení pro aktivní relaci. Filtry řádků se protínají s jinými souborovými soubory řádků definovanými pro související tabulky, například:

Table Výraz DAX
Región =Region[Country]="USA"
Kategorie produktu =ProductCategory[Name]="Jízdní kola"
Transactions =Transakce[Rok]=2020

Čistý účinek těchto oprávnění na tabulku Transakce je, že členové mohou dotazovat řádky dat, kde je zákazník v USA, a kategorie produktů je jízdní kola a rok je 2020. Uživatelé nemohou zadávat dotazy na žádné transakce mimo USA ani žádné transakce, které nejsou jízdními koly ani žádné transakce, které nejsou v roce 2020, pokud nejsou členem jiné role, která tato oprávnění uděluje.

Pomocí filtru = FALSE() můžete odepřít přístup ke všem řádkům pro celou tabulku.

Další informace o rolích modelu v Power BI najdete v tématu Zabezpečení na úrovni řádků v Power BI.

Dynamické zabezpečení

Dynamické zabezpečení umožňuje definovat zabezpečení na úrovni řádků na základě uživatelského jména uživatele, který je aktuálně přihlášený, nebo vlastnosti CustomData vrácené z připojovacího řetězce. Pokud chcete implementovat dynamické zabezpečení, musíte zahrnout tabulku s hodnotami přihlášení (uživatelské jméno Systému Windows) pro uživatele a také pole, které lze použít k definování konkrétního oprávnění v modelu. Můžete například zahrnout tabulku dimEmployees s přihlašovacím ID (doména\uživatelské_jméno) a hodnotu oddělení pro každého zaměstnance v modelu.

K implementaci dynamického zabezpečení můžete jako součást vzorce DAX použít následující funkce a vrátit uživatelské jméno uživatele, který je aktuálně přihlášený, nebo vlastnost CustomData v připojovacím řetězci:

Funkce Description
Funkce USERNAME (DAX) Vrátí doménu\uživatelské jméno uživatele, který je aktuálně přihlášen.
Funkce CUSTOMDATA (DAX) Vrátí vlastnost CustomData v připojovacím řetězci.

Pomocí funkce LOOKUPVALUE můžete vrátit hodnoty pro sloupec, ve kterém je uživatelské jméno systému Windows stejné jako uživatelské jméno vrácené funkcí USERNAME nebo řetězec vrácený funkcí CustomData. Dotazy je možné omezit, pokud hodnoty vrácené funkceMI LOOKUPVALUE odpovídají hodnotám ve stejné nebo související tabulce.

Například pomocí tohoto vzorce:

='dimDepartment'[DepartmentId]=LOOKUPVALUE('dimEmployees'[DepartmentId], 'dimEmployees'[LoginId], USERNAME(), 'dimEmployees'[LoginId], 'dimDepartment'[DepartmentId])

Funkce LOOKUPVALUE vrátí hodnoty pro sloupec dimEmployees[DepartmentId], ve kterém je dimEmployees[LoginId] stejné jako LoginID uživatele, který je aktuálně přihlášený, vráceno funkcí USERNAME a hodnoty pro dimEmployees[DepartmentId] jsou stejné jako hodnoty pro dimDepartment[DepartmentId]. Hodnoty v DepartmentId vrácené funkcem LOOKUPVALUE se pak použijí k omezení řádků dotazovaných v tabulce dimDepartment a všech tabulek souvisejících s ID oddělení. Vrátí se pouze řádky, ve kterých jsou id oddělení také v hodnotách ID oddělení vrácených funkcí LOOKUPVALUE.

dimEmployees

Příjmení Křestní jméno LoginId Název oddělení Id oddělení
Hnědý Kevin Adventure-works\kevin0 Marketing 7
Bradley David Adventure-works\david0 Marketing 7
Dobney JoLynn Adventure-works\JoLynn0 Výroba 4
Baretto DeMattos Paula Adventure-works\Paula0 Lidské zdroje 2

dimDepartment

Id oddělení Název oddělení
1 Firemní
2 Generální ředitel a správa
3 Správa inventáře
4 Výroba
5 Kontrola kvality
6 Výzkum a vývoj
7 Prodej a marketing

Testování rolí

Při vytváření projektu modelu v sadě Visual Studio můžete pomocí funkce Analyzovat v aplikaci Excel otestovat účinnost definovaných rolí. V nabídce Model v návrháři modelů vyberte Analyzovat v aplikaci Excel. Před otevřením Excelu se zobrazí dialogové okno Zvolit přihlašovací údaje a perspektivu . V tomto dialogovém okně můžete zadat aktuální uživatelské jméno, jiné uživatelské jméno, roli a perspektivu, kterou použijete pro připojení k modelu pracovního prostoru jako zdroj dat. Další informace najdete v tématu Analyzovat v aplikaci Excel.

Skriptovací role

Role pro nasazené modely a sémantické modely lze skriptovat pomocí jazyka TMSL (Tabular Model Scripting Language) k vytvoření nebo úpravě objektu Role. Skripty TMSL je možné spouštět v SSMS nebo pomocí rutiny PowerShellu Invoke-ASCmd .

Viz také

Vytváření a správa rolí
Perspektivy
Analýza v aplikaci Excel
Funkce USERNAME (DAX)
Funkce LOOKUPVALUE (DAX)
Funkce CUSTOMDATA (DAX)