Bruke servicekoder med Power BI

Du kan bruke Azure-servicekoder med Power BI til å aktivere en Azure SQL administrert forekomst (MI) for å tillate innkommende tilkoblinger fra Power Bi-tjeneste. I Azure er en tjenestekode en definert gruppe IP-adresser som du kan konfigurere til å administreres automatisk, som en gruppe, for å minimere kompleksiteten til oppdateringer eller endringer i nettverkssikkerhetsregler. Ved å bruke servicekoder med Power BI kan du aktivere en SQL-administrert forekomst for å tillate innkommende tilkoblinger fra Power Bi-tjeneste.

Følgende konfigurasjoner er nødvendige for å kunne aktivere endepunktene for bruk i Power Bi-tjeneste:

  1. Aktiver et offentlig endepunkt i SQL-administrert forekomst.
  2. Opprett en regel for nettverkssikkerhetsgruppe for å tillate innkommende trafikk.
  3. Skriv inn legitimasjonen i Power BI.

Følgende inndelinger ser på hvert av disse trinnene i sin tur.

Aktivere et offentlig endepunkt

Den første delen av prosessen er å aktivere et offentlig endepunkt i SQL-administrert forekomst. Gjør følgende:

  1. Logg på Azure-portalen, og gå til SQL-administrert forekomst.

  2. Velg Nettverk til venstre på siden.

  3. Skyv offentlig endepunkt (data) til Aktiver, og angi deretter Minimum TLS-versjonen til 1.2. Bildet nedenfor viser skjermen i Azure-portalen.

    Screenshot of Azure portal to enable public endpoints.

  4. Velg Lagre for å lagre innstillingene.

Opprette en regel for nettverkssikkerhetsgruppe

Den neste samlingen med trinn krever at du oppretter en NSG-regel (Network Security Group) for å tillate innkommende trafikk for Power Bi-tjeneste. Denne handlingen kan fullføres i Azure-portalen ved å bruke «Kildetjeneste-koden» i Power BI eller ved hjelp av kommandolinjegrensesnittet (CLI) eller PowerShell.

Merk

Prioriteten for regelen du angir, må være høyere enn regelen 4096 deny_all_inbound , noe som betyr at prioritetsverdien må være lavere enn 4096. I eksemplet nedenfor brukes en prioritetsverdi på 400.

Følgende CLI-skript er angitt som et referanseeksempel. Hvis du vil ha mer informasjon, kan du se az network nsg-regelen. Det kan hende du må endre flere verdier for at eksempelet skal fungere ordentlig i din situasjon. Et PowerShell-skript angis etterpå.

#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-skript er angitt som en annen referanse for å opprette NSG-regelen. Hvis du vil ha mer informasjon, kan du se Legge til en regel for nettverkssikkerhetsgruppe i PowerShell. Det kan hende du må endre flere verdier for at eksempelet skal fungere ordentlig i din situasjon.

#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 

Angi legitimasjonen i Power BI

Den siste delen av prosessen er å skrive inn legitimasjonen i Power Bi-tjeneste.

  1. Logg på Power Bi-tjeneste, og gå til arbeidsområdet som inneholder datasettene som bruker SQL administrert forekomst. I eksemplet nedenfor kalles dette arbeidsområdet ASAdataset , og datasettet kalles Contoso SQL MI Demo.

  2. Velg Innstillinger fra øverste høyre hjørne, og velg deretter Innstillinger fra rullegardinmenyen.

    Screenshot of the settings dropdown menu.

  3. Utvid legitimasjonsdelen for datakilde under Datasett.

    Screenshot of the edit credentials option in the Datasets tab.

  4. Velg koblingen Rediger legitimasjon. Angi gyldig legitimasjon i dialogboksen som vises.

Lagre innstillingene og avslutt. SQL-administrert forekomst er nå konfigurert til å tillate innkommende tilkoblinger fra Power Bi-tjeneste.