Delen via


Databaserollen en -gebruikers beheren

Op modeldatabaseniveau moeten alle gebruikers deel uitmaken van een rol. Rollen definiëren gebruikers met bepaalde machtigingen voor de modeldatabase. Elke gebruiker of beveiligingsgroep die aan een rol is toegevoegd, moet een account hebben in een Microsoft Entra-tenant in hetzelfde abonnement als de server.

Hoe u rollen definieert, verschilt, afhankelijk van het hulpprogramma dat u gebruikt, maar het effect is hetzelfde.

Rolmachtigingen zijn onder andere:

  • Beheerder : gebruikers hebben volledige machtigingen voor de database. Databaserollen met beheerdersmachtigingen verschillen van serverbeheerders.
  • Proces : gebruikers kunnen verbinding maken met en procesbewerkingen uitvoeren op de database en modeldatabasegegevens analyseren.
  • Lezen : gebruikers kunnen een clienttoepassing gebruiken om verbinding te maken met en modeldatabasegegevens te analyseren.

Wanneer u een tabellair modelproject maakt, maakt u rollen en voegt u gebruikers of groepen toe aan deze rollen met behulp van Rolbeheer in Visual Studio met Analysis Services-projecten. Wanneer deze wordt geïmplementeerd op een server, gebruikt u SQL Server Management Studio (SSMS), Analysis Services PowerShell-cmdlets of TMSL (Tabular Model Scripting Language) om rollen en gebruikersleden toe te voegen of te verwijderen.

Wanneer u een beveiligingsgroep toevoegt, gebruikt u obj:groupid@tenantid.

Wanneer u een service-principal toevoegt, gebruikt app:appid@tenantidu .

Rollen en gebruikers toevoegen of beheren in Visual Studio

  1. Klik in Tabellaire modelverkenner met de rechtermuisknop op Rollen.

  2. Klik in Role Manager op New.

  3. Typ een naam voor de rol.

    Standaard wordt de naam van de standaardrol incrementeel genummerd voor elke nieuwe rol. U wordt aangeraden een naam te typen die het type lid duidelijk identificeert, bijvoorbeeld Finance Managers of Human Resources Specialists.

  4. Selecteer een van de volgende machtigingen:

    Machtiging Beschrijving
    Geen Leden kunnen het modelschema niet lezen of wijzigen en kunnen geen query's uitvoeren op gegevens.
    Lezen Leden kunnen query's uitvoeren op gegevens (op basis van rijfilters), maar kunnen het modelschema niet wijzigen.
    Lezen en verwerken Leden kunnen query's uitvoeren op gegevens (op basis van filters op rijniveau) en proces- en procesbewerkingen uitvoeren, maar het modelschema kan niet worden gewijzigd.
    Verwerken Leden kunnen proces- en procesbewerkingen uitvoeren. Kan het modelschema niet lezen of wijzigen en kan geen query's uitvoeren op gegevens.
    Beheerder Leden kunnen het modelschema wijzigen en alle gegevens opvragen.
  5. Als de rol die u maakt, de machtiging Lezen of Lezen en Verwerken heeft, kunt u rijfilters toevoegen met behulp van een DAX-formule. Klik op het tabblad Rijfilters en selecteer een tabel, klik vervolgens op het DAX-filterveld en typ een DAX-formule.

  6. Klik op Leden>toevoegen extern.

  7. Voer in Extern lid toevoegen gebruikers of groepen in uw tenant Microsoft Entra-id in per e-mailadres. Nadat u op OK hebt geklikt en Rolbeheer hebt gesloten, worden rollen en rolleden weergegeven in Tabellaire modelverkenner.

    Scherm met rollen en gebruikers in Tabellaire modelverkenner.

  8. Implementeren op uw Azure Analysis Services-server.

Rollen en gebruikers toevoegen of beheren in SSMS

Als u rollen en gebruikers wilt toevoegen aan een geïmplementeerde modeldatabase, moet u zijn verbonden met de server als serverbeheerder of al in een databaserol met beheerdersmachtigingen.

  1. Klik in Object Exporer met de rechtermuisknop op Rollen>nieuwe rol.

  2. Voer in Rol maken een rolnaam en beschrijving in.

  3. Selecteer een machtiging.

    Machtiging Beschrijving
    Volledig beheer (beheerder) Leden kunnen het modelschema, het proces wijzigen en alle gegevens opvragen.
    Procesdatabase Leden kunnen proces- en procesbewerkingen uitvoeren. Kan het modelschema niet wijzigen en kan geen query's uitvoeren op gegevens.
    Lezen Leden kunnen query's uitvoeren op gegevens (op basis van rijfilters), maar kunnen het modelschema niet wijzigen.
  4. Klik op Lidmaatschap en voer vervolgens een gebruiker of groep in uw tenant Microsoft Entra-id in per e-mailadres.

    Scherm met Gebruiker toevoegen.

  5. Als de rol die u maakt, leesmachtigingen heeft, kunt u rijfilters toevoegen met behulp van een DAX-formule. Klik op Rijfilters, selecteer een tabel en typ vervolgens een DAX-formule in het DAX-filterveld .

Rollen en gebruikers toevoegen met behulp van een TMSL-script

U kunt een TMSL-script uitvoeren in het XMLA-venster in SSMS of met behulp van PowerShell. Gebruik de opdracht CreateOrReplace en het object Roles .

Voorbeeld van TMSL-script

In dit voorbeeld worden een externe B2B-gebruiker en een groep toegevoegd aan de rol Analist met leesmachtigingen voor de SalesBI-database. Zowel de externe gebruiker als de groep moet zich in dezelfde Tenant Microsoft Entra-id bevinden.

{
  "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"
        }
      ]
    }
  }
}

Rollen en gebruikers toevoegen met behulp van PowerShell

De SqlServer-module biedt taakspecifieke databasebeheer-cmdlets en de cmdlet Invoke-ASCmd voor algemeen gebruik die een TMSL-query of script (Tabular Model Scripting Language) accepteert. De volgende cmdlets worden gebruikt voor het beheren van databaserollen en gebruikers.

Cmdlet Beschrijving
Add-RoleMember Voeg een lid toe aan een databaserol.
Remove-RoleMember Een lid uit een databaserol verwijderen.
Invoke-ASCmd Voer een TMSL-script uit.

Rijfilters

Rijfilters bepalen welke rijen in een tabel kunnen worden opgevraagd door leden van een bepaalde rol. Rijfilters worden gedefinieerd voor elke tabel in een model met behulp van DAX-formules.

Rijfilters kunnen alleen worden gedefinieerd voor rollen met lees- en lees- en procesmachtigingen. Als een rijfilter niet is gedefinieerd voor een bepaalde tabel, kunnen leden standaard alle rijen in de tabel opvragen, tenzij kruislings filteren van toepassing is op een andere tabel.

Voor rijfilters is een DAX-formule vereist die moet worden geëvalueerd naar een WAAR/ONWAAR-waarde om de rijen te definiëren die kunnen worden opgevraagd door leden van die specifieke rol. Er kunnen geen query's worden uitgevoerd op rijen die niet zijn opgenomen in de DAX-formule. De tabel Klanten met de volgende rijfilterexpressie = Klanten [Land] = "VS", leden van de rol Verkoop kunnen bijvoorbeeld alleen klanten in de VS zien.

Rijfilters zijn van toepassing op de opgegeven rijen en gerelateerde rijen. Wanneer een tabel meerdere relaties heeft, passen filters beveiliging toe voor de relatie die actief is. Rijfilters worden gekruist met andere rij filers die zijn gedefinieerd voor gerelateerde tabellen, bijvoorbeeld:

Tabel DAX-expressie
Regio =Region[Country]="USA"
ProductCategory =ProductCategory[Naam]="Fietsen"
Transacties =Transacties[Jaar]=2016

Het netto-effect is leden kunnen rijen met gegevens opvragen waar de klant zich in de VS bevindt, de productcategorie fietsen is en het jaar 2016 is. Gebruikers kunnen geen query's uitvoeren op transacties buiten de VS, transacties die geen fietsen zijn of transacties die niet in 2016 zijn, tenzij ze lid zijn van een andere rol die deze machtigingen verleent.

U kunt het filter = FALSE()gebruiken om de toegang tot alle rijen voor een hele tabel te weigeren.

Volgende stappen

Serverbeheerders beheren
Azure Analysis Services beheren met PowerShell
TmSL-verwijzing (Tabular Model Scripting Language)