Zarządzanie rolami bazy danych i użytkownikami

Na poziomie modelowej bazy danych wszyscy użytkownicy muszą należeć do roli. Role definiują użytkowników z określonymi uprawnieniami dla bazy danych modelu. Każdy użytkownik lub grupa zabezpieczeń dodana do roli musi mieć konto w dzierżawie firmy Microsoft Entra w tej samej subskrypcji co serwer.

Sposób definiowania ról różni się w zależności od używanego narzędzia, ale efekt jest taki sam.

Uprawnienia roli obejmują:

  • Administracja istrator — użytkownicy mają pełne uprawnienia do bazy danych. Role bazy danych z uprawnieniami Administracja istratora różnią się od administratorów serwera.
  • Proces — użytkownicy mogą łączyć się z bazą danych i wykonywać operacje procesów oraz analizować dane bazy danych modelu.
  • Odczyt — użytkownicy mogą używać aplikacji klienckiej do nawiązywania połączenia z danymi bazy danych modelu i analizowania ich.

Podczas tworzenia projektu modelu tabelarycznego można tworzyć role i dodawać użytkowników lub grupy do tych ról przy użyciu Menedżera ról w programie Visual Studio z projektami usług Analysis Services. Po wdrożeniu na serwerze użyj programu SQL Server Management Studio (SSMS), poleceń cmdlet programu PowerShell usług Analysis Services lub języka TMSL (Tabular Model Scripting Language ) w celu dodawania lub usuwania ról i członków użytkowników.

Podczas dodawania grupy zabezpieczeń użyj polecenia obj:groupid@tenantid.

Podczas dodawania jednostki usługi użyj polecenia app:appid@tenantid.

Aby dodawać role i użytkowników w programie Visual Studio lub zarządzać nimi

  1. W Eksploratorze modeli tabelarycznych kliknij prawym przyciskiem myszy pozycję Role.

  2. W Menedżerze ról kliknij przycisk Nowa.

  3. Wpisz nazwę roli.

    Domyślnie nazwa roli domyślnej jest przyrostowo numerowana dla każdej nowej roli. Zaleca się wpisać nazwę, która wyraźnie identyfikuje typ członka, na przykład Menedżerowie finansów lub Specjaliści ds. zasobów ludzkich.

  4. Wybierz jedno z następujących uprawnień:

    Uprawnienie Opis
    Brak Członkowie nie mogą odczytywać ani modyfikować schematu modelu i nie mogą wykonywać zapytań dotyczących danych.
    Przeczytaj Członkowie mogą wykonywać zapytania dotyczące danych (na podstawie filtrów wierszy), ale nie mogą modyfikować schematu modelu.
    Odczytywanie i przetwarzanie Członkowie mogą wykonywać zapytania dotyczące danych (na podstawie filtrów na poziomie wiersza) i uruchamiać operacje Proces i Przetwarzanie wszystkie, ale nie mogą modyfikować schematu modelu.
    Proces Członkowie mogą uruchamiać operacje Proces i Przetwarzanie wszystkich. Nie można odczytać ani zmodyfikować schematu modelu i nie może wykonywać zapytań dotyczących danych.
    Administrator Członkowie mogą modyfikować schemat modelu i wykonywać zapytania dotyczące wszystkich danych.
  5. Jeśli utworzona rola ma uprawnienie Odczyt lub Odczyt i przetwarzanie, możesz dodać filtry wierszy przy użyciu formuły języka DAX. Kliknij kartę Filtry wierszy , a następnie wybierz tabelę, a następnie kliknij pole Filtr języka DAX, a następnie wpisz formułę języka DAX.

  6. Kliknij pozycję Członkowie>Dodaj zewnętrzne.

  7. W dodaj członka zewnętrznego wprowadź użytkowników lub grupy w dzierżawie Microsoft Entra ID według adresu e-mail. Po kliknięciu przycisku OK i zamknięciu Menedżera ról role i elementy członkowskie roli są wyświetlane w Eksploratorze modeli tabelarycznych.

    Screen showing roles and users in Tabular Model Explorer.

  8. Wdróż na serwerze usług Azure Analysis Services.

Aby dodawać role i użytkowników w programie SSMS lub zarządzać nimi

Aby dodać role i użytkowników do wdrożonej bazy danych modelu, musisz mieć połączenie z serwerem jako administrator serwera lub już w roli bazy danych z uprawnieniami administratora.

  1. W programie Object Exporer kliknij prawym przyciskiem myszy pozycję Role>Nowa rola.

  2. W obszarze Tworzenie roli wprowadź nazwę i opis roli.

  3. Wybierz uprawnienie.

    Uprawnienie opis
    Pełna kontrola (Administracja istrator) Członkowie mogą modyfikować schemat modelu, proces i wykonywać zapytania dotyczące wszystkich danych.
    Przetwarzanie bazy danych Członkowie mogą uruchamiać operacje Proces i Przetwarzanie wszystkich. Nie można zmodyfikować schematu modelu i nie może wykonywać zapytań dotyczących danych.
    Przeczytaj Członkowie mogą wykonywać zapytania dotyczące danych (na podstawie filtrów wierszy), ale nie mogą modyfikować schematu modelu.
  4. Kliknij pozycję Członkostwo, a następnie wprowadź użytkownika lub grupę w dzierżawie Microsoft Entra ID według adresu e-mail.

    Screen showing Add user.

  5. Jeśli utworzona rola ma uprawnienie Odczyt, możesz dodać filtry wierszy przy użyciu formuły języka DAX. Kliknij pozycję Filtry wierszy, wybierz tabelę, a następnie wpisz formułę języka DAX w polu Filtr języka DAX.

Aby dodać role i użytkowników przy użyciu skryptu TMSL

Skrypt TMSL można uruchomić w oknie XMLA w programie SSMS lub przy użyciu programu PowerShell. Użyj polecenia CreateOrReplace i obiektu Roles.

Przykładowy skrypt TMSL

W tym przykładzie użytkownik zewnętrzny B2B i grupa są dodawane do roli Analityk z uprawnieniami do odczytu dla bazy danych SalesBI. Zarówno użytkownik zewnętrzny, jak i grupa muszą znajdować się w tej samej dzierżawie 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"
        }
      ]
    }
  }
}

Aby dodać role i użytkowników przy użyciu programu PowerShell

Moduł SqlServer udostępnia polecenia cmdlet zarządzania bazami danych specyficzne dla zadań oraz polecenie cmdlet Invoke-ASCmd ogólnego przeznaczenia, które akceptuje zapytanie lub skrypt języka TMSL (Tabular Model Scripting Language). Następujące polecenia cmdlet służą do zarządzania rolami bazy danych i użytkownikami.

Polecenia cmdlet opis
Add-RoleMember Dodaj członka do roli bazy danych.
Remove-RoleMember Usuń członka z roli bazy danych.
Invoke-ASCmd Wykonaj skrypt TMSL.

Filtry wierszy

Filtry wierszy definiują, które wiersze w tabeli mogą być odpytywane przez członków określonej roli. Filtry wierszy są definiowane dla każdej tabeli w modelu przy użyciu formuł języka DAX.

Filtry wierszy można definiować tylko dla ról z uprawnieniami odczytań i odczytu i przetwarzania. Domyślnie jeśli filtr wierszy nie jest zdefiniowany dla określonej tabeli, członkowie mogą wykonywać zapytania dotyczące wszystkich wierszy w tabeli, chyba że filtrowanie krzyżowe ma zastosowanie z innej tabeli.

Filtry wierszy wymagają formuły języka DAX, która musi mieć wartość TRUE/FALSE, aby zdefiniować wiersze, które mogą być odpytywane przez członków tej konkretnej roli. Nie można wykonywać zapytań o wiersze nieuwzględniane w formule języka DAX. Na przykład tabela Customers z następującym wyrażeniem filtrów wierszy, =Customers [Country] = "USA", członkowie roli Sales mogą widzieć tylko klientów w USA.

Filtry wierszy dotyczą określonych wierszy i powiązanych wierszy. Gdy tabela ma wiele relacji, filtry stosują zabezpieczenia dla relacji, która jest aktywna. Filtry wierszy są przecinane z innymi plikami wierszy zdefiniowanymi dla powiązanych tabel, na przykład:

Table Wyrażenie języka DAX
Region =Region[Kraj]="USA"
ProductCategory =ProductCategory[Name]="Rowery"
Transakcje =Transakcje[Rok]=2016

Efekt netto to członkowie mogą wysyłać zapytania o wiersze danych, w których klient znajduje się w USA, kategoria produktu to rowery, a rok to 2016. Użytkownicy nie mogą wykonywać zapytań dotyczących transakcji spoza USA, transakcji, które nie są rowerami lub transakcji nie w 2016 r., chyba że są członkami innej roli, która przyznaje te uprawnienia.

Możesz użyć filtru = FALSE(), aby odmówić dostępu do wszystkich wierszy dla całej tabeli.

Następne kroki

Zarządzanie administratorami serwerów
Zarządzanie usługami Azure Analysis Services przy użyciu programu PowerShell
Dokumentacja języka TMSL (Tabular Model Scripting Language)