Správa databázových rolí a uživatelů
Na úrovni databáze modelu musí všichni uživatelé patřit do role. Role definují uživatele s konkrétními oprávněními pro databázi modelu. Každý uživatel nebo skupina zabezpečení přidaná do role musí mít účet v tenantovi Microsoft Entra ve stejném předplatném jako server.
Způsob definování rolí se liší v závislosti na používaném nástroji, ale účinek je stejný.
Mezi oprávnění role patří:
- Správce – Uživatelé mají úplná oprávnění pro databázi. Databázové role s oprávněními správce se liší od správců serveru.
- Proces – Uživatelé se můžou připojit k databázi a provádět operace zpracování a analyzovat data databáze modelu.
- Čtení – Uživatelé můžou k připojení a analýze dat databáze modelu použít klientskou aplikaci.
Při vytváření projektu tabulkového modelu vytvoříte role a k těmto rolím přidáte uživatele nebo skupiny pomocí Správce rolí v sadě Visual Studio s projekty Analysis Services. Při nasazení na server použijte SQL Server Management Studio (SSMS), rutiny PowerShellu služby Analysis Services nebo jazyk TMSL (Tabular Model Scripting Language) k přidání nebo odebrání rolí a členů uživatelů.
Při přidávání skupiny zabezpečení použijte obj:groupid@tenantid
.
Při přidávání instančního objektu použijte app:appid@tenantid
.
Přidání nebo správa rolí a uživatelů v sadě Visual Studio
V Průzkumníku tabulkových modelů klikněte pravým tlačítkem na role.
Ve Správci rolí klikněte na Nový.
Zadejte název role.
Ve výchozím nastavení se název výchozí role postupně očísluje pro každou novou roli. Doporučuje se zadat název, který jasně identifikuje typ člena, například finanční manažeři nebo specialisté na lidské zdroje.
Vyberte jedno z následujících oprávnění:
Oprávnění Popis Nic Členové nemohou číst ani upravovat schéma modelu a nemohou dotazovat data. Přečíst Členové mohou dotazovat data (na základě filtrů řádků), ale nemůžou měnit schéma modelu. Čtení a zpracování Členové mohou zadávat dotazy na data (na základě filtrů na úrovni řádků) a spouštět operace Proces a zpracovat všechny operace, ale nemohou změnit schéma modelu. Proces Členové mohou spouštět operace Proces a zpracovat všechny operace. Nelze číst ani upravovat schéma modelu a nelze dotazovat data. Správce Členové mohou upravit schéma modelu a dotazovat se na všechna data. Pokud má vytvářená role oprávnění ke čtení nebo čtení a zpracování, můžete přidat filtry řádků pomocí vzorce DAX. Klikněte na kartu Filtry řádků, vyberte tabulku, potom klikněte na pole Filtr DAX a zadejte vzorec DAX.
Klikněte na Přidat externí členy>.
V okně Přidat externího člena zadejte uživatele nebo skupiny do tenanta Microsoft Entra ID podle e-mailové adresy. Po kliknutí na tlačítko OK a zavření Správce rolí se role a členové rolí zobrazí v Průzkumníku tabulkových modelů.
Nasaďte ho na server Azure Analysis Services.
Přidání nebo správa rolí a uživatelů v SSMS
Pokud chcete do nasazené databáze modelu přidat role a uživatele, musíte být připojení k serveru jako správce serveru nebo už v databázové roli s oprávněními správce.
V Průzkumník objektů klikněte pravým tlačítkem na Role>Nová role.
V části Vytvořit roli zadejte název a popis role.
Vyberte oprávnění.
Oprávnění Popis Úplné řízení (správce) Členové mohou měnit schéma modelu, zpracovávat a dotazovat se na všechna data. Procesní databáze Členové mohou spouštět operace Proces a zpracovat všechny operace. Schéma modelu nelze upravit a nelze dotazovat data. Přečíst Členové mohou dotazovat data (na základě filtrů řádků), ale nemůžou měnit schéma modelu. Klikněte na Členství a potom zadejte uživatele nebo skupinu do svého tenanta Microsoft Entra ID podle e-mailové adresy.
Pokud má vytvářená role oprávnění ke čtení, můžete přidat filtry řádků pomocí vzorce DAX. Klikněte na Filtry řádků, vyberte tabulku a do pole Filtr DAX zadejte vzorec DAX.
Přidání rolí a uživatelů pomocí skriptu TMSL
Skript TMSL můžete spustit v okně XMLA v SSMS nebo pomocí PowerShellu. Použijte příkaz CreateOrReplace a objekt Role.
Ukázkový skript TMSL
V této ukázce se externí uživatel B2B a skupina přidají do role Analytik s oprávněními ke čtení pro databázi SalesBI. Externí uživatel i skupina musí být ve stejném tenantovi Microsoft Entra ID.
{
"createOrReplace": {
"object": {
"database": "SalesBI",
"role": "Analyst"
},
"role": {
"name": "Users",
"description": "All allowed users to query the model",
"modelPermission": "read",
"members": [
{
"memberName": "user1@contoso.com",
"identityProvider": "AzureAD"
},
{
"memberName": "group1@adventureworks.com",
"identityProvider": "AzureAD"
}
]
}
}
}
Přidání rolí a uživatelů pomocí PowerShellu
Modul SqlServer poskytuje rutiny pro správu databází specifické pro úlohy a rutinu Invoke-ASCmd pro obecné účely, která přijímá dotaz nebo skript jazyka TMSL (Tabular Model Scripting Language). Následující rutiny se používají ke správě databázových rolí a uživatelů.
Rutina | Popis |
---|---|
Add-RoleMember | Přidání člena do databázové role |
Remove-RoleMember | Odeberte člena z databázové role. |
Invoke-ASCmd | Spusťte skript TMSL. |
Filtry řádků
Filtry řádků 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é dotazovat všechny řádky v tabulce, pokud křížové filtrování neplatí z jiné tabulky.
Filtry řádků vyžadují vzorec DAX, který se musí vyhodnotit na hodnotu PRAVDA/NEPRAVDA, aby bylo možné definovat řádky, na které můžou členové dané role dotazovat. Řádky, které nejsou součástí vzorce DAX, nelze dotazovat. Například tabulka Customers s následujícím výrazem filtrů řádků = Customers [Country] = "USA", členové prodejní role můžou zobrazit pouze zákazníky v USA.
Filtry řádků se vztahují na zadané řádky a související řádky. Pokud má tabulka více relací, filtry použijí zabezpečení pro aktivní relaci. Filtry řádků se protínají s dalšími řádkovými soubory definovanými pro související tabulky, například:
Table | Výraz DAX |
---|---|
Oblast | =Region[Country]="USA" |
ProductCategory | =ProductCategory[Name]="Jízdní kola" |
Transakce | =Transakce[Rok]=2016 |
Čistý efekt je, že členové můžou dotazovat řádky dat, kde je zákazník v USA, kategorie produktů je jízdní kola a rok je 2016. Uživatelé nemohou zadávat dotazy na transakce mimo USA, transakce, které nejsou jízdními koly nebo transakcemi v roce 2016, 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ší kroky
Správa správců serveru
Správa služby Azure Analysis Services pomocí PowerShellu
Referenční dokumentace jazyka TMSL (Tabular Model Scripting Language)