Använda tjänsttaggar med Power BI
Du kan använda Azure-tjänsttaggar med Power BI för att aktivera en Azure SQL Managed Instance (MI) för att tillåta inkommande anslutningar från Power BI-tjänst. I Azure är en tjänsttagg en definierad grupp med IP-adresser som du kan konfigurera för att automatiskt hanteras, som en grupp, för att minimera komplexiteten för uppdateringar eller ändringar i nätverkssäkerhetsregler. Genom att använda tjänsttaggar med Power BI kan du aktivera en SQL Managed Instance så att inkommande anslutningar från Power BI-tjänsten tillåts.
Följande konfigurationer är nödvändiga för att aktivera slutpunkterna för användning i Power BI-tjänst:
- Aktivera en offentlig slutpunkt i SQL Managed Instance.
- Skapa en regel för nätverkssäkerhetsgrupp för att tillåta inkommande trafik.
- Ange autentiseringsuppgifterna i Power BI.
I följande avsnitt tittar vi i tur och ordning på vart och ett av dessa steg.
Aktivera en offentlig slutpunkt
Den första delen av processen är att aktivera en offentlig slutpunkt i SQL Managed Instance. Utför följande steg:
Logga in på Azure-portalen och gå till din SQL Managed Instance.
Välj Nätverk till vänster på sidan.
Dra den offentliga slutpunkten (data) till Aktivera och ange sedan lägsta TLS-version till 1.2. Följande bild visar skärmen i Azure-portalen.
Spara inställningarna genom att välja Spara.
Skapa en regel för nätverkssäkerhetsgruppen
Nästa samling steg kräver att du skapar en NSG-regel (Network Security Group) för att tillåta inkommande trafik för Power BI-tjänst. Den här åtgärden kan slutföras i Azure-portalen genom att använda "källtjänsttaggen" i Power BI eller med hjälp av antingen kommandoradsgränssnittet (CLI) eller PowerShell.
Kommentar
Prioriteten för regeln du anger måste vara högre än regeln 4096 deny_all_inbound , vilket innebär att prioritetsvärdet måste vara lägre än 4096. I följande exempel används ett prioritetsvärde på 400.
Följande CLI-skript tillhandahålls som ett referensexempel. Mer information finns i az network nsg rule . Du kan behöva ändra flera värden för att exemplet ska fungera korrekt i din situation. Ett PowerShell-skript tillhandahålls efteråt.
#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öljande PowerShell-skript tillhandahålls som en annan referens för att skapa NSG-regeln. Mer information finns i Lägga till en regel för nätverkssäkerhetsgrupp i PowerShell. Du kan behöva ändra flera värden för att exemplet ska fungera 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
Ange autentiseringsuppgifterna i Power BI
Den sista delen av processen är att ange autentiseringsuppgifterna i Power BI-tjänst.
Logga in på Power BI-tjänst och navigera till arbetsytan som innehåller de datauppsättningar som använder SQL Managed Instance. I följande exempel kallas arbetsytan ASAdataset och datamängden kallas Contoso SQL MI Demo.
Välj Inställningar i det övre högra hörnet och välj sedan Inställningar på den nedrullningsbara menyn.
Under Datauppsättningar expanderar du avsnittet Autentiseringsuppgifter för datakälla.
Välj länken Redigera autentiseringsuppgifter. I dialogrutan som visas anger du giltiga autentiseringsuppgifter.
Spara inställningarna och avsluta. Din SQL Managed Instance har nu konfigurerats för att tillåta inkommande anslutningar från Power BI-tjänst.