Brug tjenestekoder med Power BI

Du kan bruge Azure-tjenestekoder med Power BI til at aktivere en Azure SQL Managed Instance (MI) for at tillade indgående forbindelser fra Power BI-tjeneste. I Azure er en tjenestekode en defineret gruppe af IP-adresser, som du kan konfigurere til automatisk at blive administreret som en gruppe for at minimere kompleksiteten af opdateringer eller ændringer af regler for netværkssikkerhed. Ved hjælp af tjenestekoder med Power BI kan du aktivere en SQL Managed Instance for at tillade indgående forbindelser fra Power BI-tjeneste.

Følgende konfigurationer er nødvendige for at aktivere slutpunkterne til brug i Power BI-tjeneste:

  1. Aktivér et offentligt slutpunkt i den SQL-administrerede forekomst.
  2. Opret en regel for Netværkssikkerhedsgruppe for at tillade indgående trafik.
  3. Angiv legitimationsoplysningerne i Power BI.

I følgende afsnit ser vi på hvert af disse trin ad gangen.

Aktivér et offentligt slutpunkt

Den første del af processen er at aktivere et offentligt slutpunkt i SQL Managed Instance. Udfør følgende trin:

  1. Log på Azure-portal, og naviger til din SQL Managed Instance.

  2. Vælg Netværk i venstre side af siden.

  3. Skub offentligt slutpunkt (data) for at aktivere, og angiv derefter minimumversionen af TLS til 1.2. På følgende billede vises skærmen i Azure-portal.

    Screenshot of Azure portal to enable public endpoints.

  4. Vælg Gem for at gemme indstillingerne.

Opret en regel for netværkssikkerhedsgruppe

Den næste samling af trin kræver, at du opretter en NSG-regel (Network Security Group) for at tillade indgående trafik for Power BI-tjeneste. Denne handling kan fuldføres i Azure-portal ved at udnytte "Kildetjenestekode" i Power BI eller ved hjælp af kommandolinjegrænsefladen (CLI) eller PowerShell.

Bemærk

Prioriteten for den regel, du angiver, skal være højere end 4096-deny_all_inbound-reglen, hvilket betyder, at prioritetsværdien skal være lavere end 4096. I følgende eksempel bruges en prioritetsværdi på 400.

Følgende CLI-script er angivet som et referenceeksempel. Du kan få flere oplysninger under az network nsg rule. Du skal muligvis ændre flere værdier, for at eksemplet fungerer korrekt i din situation. Der leveres derefter et PowerShell-script.

#login to azure
az login

#set subscription that contains SQL MI instance
$subname = "mysubscriptionname"
az account set --subscription $subname

#set NSG rule for inbound PowerBI traffic

#update $RG to your resource group name
$rg = 'myresourcegroup'
#update $nsg to your Network Security Group name
$nsg = 'nsgresourcename'
# Name the NSG rule
$rule = 'allow_inbound_PowerBI'
#set the priority - this must be higher priority (lower number) than the deny_all_inbound rule
$priority = 400
#specifiy the service tag to use
$servicetag = 'PowerBI'
#specify the public endpoint port defined in step 1
$port = 3342
#set the rule to inbound direction
$direction = 'Inbound'
#set the access type to "Allow"
$access = 'Allow'
#Set the protocol as TCP
$protocol = 'tcp'
#Provide a description for the rule
$desc = 'Allow PowerBI Access to SQL MI for Direct Query or Data Refresh.'
 
#create the NSG rule
az network nsg rule create -g $rg \
--nsg-name $nsg -n $rule --priority $priority \
--source-address-prefixes $servicetag --destination-address-prefixes '*' \
--destination-port-ranges $port --direction $direction --access $access \
--protocol $protocol --description $desc

Følgende PowerShell-script leveres som en anden reference til oprettelse af NSG-reglen. Du kan få flere oplysninger under Tilføj en regel for netværkssikkerhedsgruppe i PowerShell. Du skal muligvis ændre flere værdier, for at eksemplet fungerer korrekt i din situation.

#login to azure
Login-AzAccount

#get your subscription ID
Get-AzSubscription

####
#Script to create Network Security Group Rule
###

#enter your subscription ID
Set-AzContext -SubscriptionId "yoursubscriptionID" 

#Provide the resource group for your Network Security Group
$RGname="yourRG"
#Enter the port for the SQL Managed Instance Public Endpoint
$port=3342
#name the NSG rule
$rulename="allow_inbound_PowerBI"
#provide the name of the Network Security Group to add the rule to
$nsgname="yourNSG"
#set direction to inbound to allow PowerBI to access SQL MI
$direction ="Inbound"
#set the priority of the rule. Priority must be higher (ie. lower number) than the deny_all_inbound (4096)
$priority=400
#set the service tags for the source to \u201cPowerBI\u201d
$serviceTag = "PowerBI"

# Get the NSG resource
$nsg = Get-AzNetworkSecurityGroup -Name $nsgname -ResourceGroupName $RGname

# Add the inbound security rule.
$nsg | Add-AzNetworkSecurityRuleConfig -Name $rulename -Description "Allow app port" -Access Allow `
    -Protocol * -Direction $direction -Priority $priority -SourceAddressPrefix $serviceTag -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange $port

# Update the NSG.
$nsg | Set-AzNetworkSecurityGroup 

Angiv legitimationsoplysningerne i Power BI

Den sidste del af processen er at angive legitimationsoplysningerne i Power BI-tjeneste.

  1. Log på Power BI-tjeneste, og naviger til det arbejdsområde, der indeholder det eller de datasæt, der bruger SQL Managed Instance. I følgende eksempel kaldes arbejdsområdet ASAdataset , og datasættet kaldes Contoso SQL MI Demo.

  2. Vælg Indstillinger i øverste højre hjørne, og vælg derefter Indstillinger i rullemenuen.

    Screenshot of the settings dropdown menu.

  3. Under Datasæt skal du udvide afsnittet Legitimationsoplysninger for datakilde.

    Screenshot of the edit credentials option in the Datasets tab.

  4. Vælg linket Rediger legitimationsoplysninger . Angiv gyldige legitimationsoplysninger i den dialogboks, der vises.

Gem dine indstillinger, og afslut. Din SQL-administrerede forekomst er nu konfigureret til at tillade indgående forbindelser fra Power BI-tjeneste.