Verwenden von VNET-Dienstendpunkten und -Regeln für DatenbankserverUse virtual network service endpoints and rules for database servers

Regeln für ein virtuelles Netzwerk sind eine Firewallsicherheitsfunktion, die steuert, ob der Datenbankserver für Ihre Singletons und Ihren Pool für elastische Datenbanken in Azure SQL-Datenbank oder für Ihre Datenbanken in SQL Data Warehouse Nachrichten akzeptiert, die von bestimmten Subnetzen in virtuellen Netzwerken gesendet werden.Virtual network rules are one firewall security feature that controls whether the database server for your single databases and elastic pool in Azure SQL Database or for your databases in SQL Data Warehouse accepts communications that are sent from particular subnets in virtual networks. In diesem Artikel wird erklärt, warum VNET-Regeln mitunter die beste Möglichkeit darstellen, Nachrichten an Ihre Azure SQL-Datenbank- und SQL Data Warehouse-Instanz sicher zuzulassen.This article explains why the virtual network rule feature is sometimes your best option for securely allowing communication to your Azure SQL Database and SQL Data Warehouse.

Wichtig

Dieser Artikel gilt für den Azure SQL-Datenbankserver sowie für Datenbanken von SQL-Datenbank und SQL Data Warehouse, die auf dem Azure SQL-Datenbankserver erstellt werden.This article applies to Azure SQL server, and to both SQL Database and SQL Data Warehouse databases that are created on the Azure SQL server. Der Einfachheit halber wird nur SQL-Datenbank verwendet, wenn sowohl SQL-Datenbank als auch SQL Data Warehouse gemeint sind.For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse. Dieser Artikel gilt nicht für die Bereitstellungsoption Verwaltete Instanz in Azure SQL-Datenbank, da dieser kein Dienstendpunkt zugeordnet ist.This article does not apply to a managed instance deployment in Azure SQL Database because it does not have a service endpoint associated with it.

Damit eine VNET-Regel erstellt werden kann, muss zuerst ein VNET-Dienstendpunkt vorhanden sein, auf den die Regel verweisen kann.To create a virtual network rule, there must first be a virtual network service endpoint for the rule to reference.

Erstellen einer VNET-RegelHow to create a virtual network rule

Wenn Sie nur eine VNET-Regel erstellen, können Sie mit den Schritten und der Erklärung weiter unten in diesem Artikel fortfahren.If you only create a virtual network rule, you can skip ahead to the steps and explanation later in this article.

Terminologie und BeschreibungTerminology and description

Virtuelles Netzwerk: Sie können Ihrem Azure-Abonnement virtuelle Netzwerke zuordnen.Virtual network: You can have virtual networks associated with your Azure subscription.

Subnetz: Ein virtuelles Netzwerk enthält Subnetze.Subnet: A virtual network contains subnets. Ihre virtuellen Azure-Computer (VMs) sind Subnetzen zugewiesen.Any Azure virtual machines (VMs) that you have are assigned to subnets. Ein Subnetz kann mehrere VMs oder andere Computeknoten enthalten.One subnet can contain multiple VMs or other compute nodes. Computeknoten, die sich außerhalb Ihres virtuellen Netzwerks befinden, können nicht auf Ihr virtuelles Netzwerk zugreifen, es sei denn, Sie konfigurieren für sie den sicheren Zugriff.Compute nodes that are outside of your virtual network cannot access your virtual network unless you configure your security to allow access.

Dienstendpunkt im virtuellen Netzwerk: Ein Virtual Network-Dienstendpunkt ist ein Subnetz, dessen Eigenschaftswerte mindestens einen formalen Azure-Diensttypnamen enthalten.Virtual Network service endpoint: A Virtual Network service endpoint is a subnet whose property values include one or more formal Azure service type names. In diesem Artikel beschäftigen wir uns mit dem Typnamen Microsoft.Sql, der auf einen Azure-Dienst mit dem Namen „SQL-Datenbank“ verweist.In this article we are interested in the type name of Microsoft.Sql, which refers to the Azure service named SQL Database.

Regel für virtuelles Netzwerk: Eine VNET-Regel für Ihren SQL-Datenbank-Server ist ein Subnetz, das in der Zugriffssteuerungsliste des SQL-Datenbank-Servers aufgeführt ist.Virtual network rule: A virtual network rule for your SQL Database server is a subnet that is listed in the access control list (ACL) of your SQL Database server. Um in die Zugriffssteuerungsliste für Ihre SQL-Datenbank-Instanz zu gelangen, muss das Subnetz den Typnamen Microsoft.Sql enthalten.To be in the ACL for your SQL Database, the subnet must contain the Microsoft.Sql type name.

Eine VNET-Regel weist Ihren Azure SQL-Datenbankserver an, Nachrichten von jedem Knoten anzunehmen, der zum Subnetz gehört.A virtual network rule tells your SQL Database server to accept communications from every node that is on the subnet.

Vorteile einer VNET-RegelBenefits of a virtual network rule

Bis Sie Maßnahmen ergreifen, können die virtuellen Computer in Ihren Subnetzen nicht mit Ihrer Azure SQL-Datenbank-Instanz kommunizieren.Until you take action, the VMs on your subnets cannot communicate with your SQL Database. Eine Aktion zum Herstellen der Kommunikation stellt die Erstellung einer VNET-Regel dar.One action that establishes the communication is the creation of a virtual network rule. Die Begründung der Entscheidung für eine VNET-Regel erfordert eine Erörterung der Vor- und Nachteile, die die von der Firewall gebotenen konkurrierenden Sicherheitsoptionen berücksichtigt.The rationale for choosing the VNet rule approach requires a compare-and-contrast discussion involving the competing security options offered by the firewall.

A.A. Zugriff auf Azure-Dienste erlaubenAllow access to Azure services

Der Firewallbereich enthält eine Schaltfläche des Typs EIN/AUS mit der Bezeichnung Zugriff auf Azure-Dienste erlauben.The firewall pane has an ON/OFF button that is labeled Allow access to Azure services. Die Einstellung EIN lässt Nachrichten von allen Azure IP-Adressen und aus allen Azure-Subnetzen zu.The ON setting allows communications from all Azure IP addresses and all Azure subnets. Diese Azure-IP-Adressen oder -Subnetze gehören möglicherweise nicht Ihnen.These Azure IPs or subnets might not be owned by you. Die Einstellung EIN lässt wahrscheinlich einen umfassenderen Zugriff auf Ihre SQL-Datenbank-Instanz zu, als von Ihnen gewünscht.This ON setting is probably more open than you want your SQL Database to be. Eine VNET-Regel ermöglicht eine präzisere Steuerung.The virtual network rule feature offers much finer granular control.

B:B. IP-RegelnIP rules

Die Firewall von SQL-Datenbank ermöglicht Ihnen das Angeben von IP-Adressbereichen, aus denen Nachrichten an die SQL-Datenbank-Instanz gesendet werden dürfen.The SQL Database firewall allows you to specify IP address ranges from which communications are accepted into SQL Database. Dieser Ansatz eignet sich gut für statische IP-Adressen, die sich außerhalb des privaten Azure-Netzwerks befinden.This approach is fine for stable IP addresses that are outside the Azure private network. Doch viele Knoten innerhalb des privaten Azure-Netzwerks sind mit dynamischen IP-Adressen konfiguriert.But many nodes inside the Azure private network are configured with dynamic IP addresses. Dynamische IP-Adressen können sich ändern, z.B. wenn Ihre VM neu gestartet wird.Dynamic IP addresses might change, such as when your VM is restarted. Es wäre töricht, eine dynamische IP-Adresse in einer Firewallregel in einer Produktionsumgebung anzugeben.It would be folly to specify a dynamic IP address in a firewall rule, in a production environment.

Sie können die IP-Option weiter nutzen, indem Sie eine statische IP-Adresse für Ihre VM abrufen.You can salvage the IP option by obtaining a static IP address for your VM. Einzelheiten finden Sie unter Konfigurieren von privaten IP-Adressen für einen virtuellen Computer über das Azure-Portal.For details, see Configure private IP addresses for a virtual machine by using the Azure portal.

Der Ansatz mit statischen IP-Adressen kann jedoch schwierig zu handhaben und aufwendig sein, wenn er in großem Maßstab befolgt wird.However, the static IP approach can become difficult to manage, and it is costly when done at scale. VNET-Regeln sind einfacher einzurichten und zu verwalten.Virtual network rules are easier to establish and to manage.

Hinweis

Azure SQL-Datenbank wird noch nicht in einem Subnetz unterstützt.You cannot yet have SQL Database on a subnet. Wenn sich Ihr Azure SQL-Datenbank-Server auf einem Knoten in einem Subnetz in Ihrem virtuellen Netzwerk befände, könnten alle Knoten innerhalb des virtuellen Netzwerks mit Ihrer SQL-Datenbank-Instanz kommunizieren.If your Azure SQL Database server was a node on a subnet in your virtual network, all nodes within the virtual network could communicate with your SQL Database. In diesem Fall könnten Ihre virtuellen Computer mit der SQL-Datenbank-Instanz kommunizieren, ohne dass VNET-Regeln oder IP-Regeln erforderlich sind.In this case, your VMs could communicate with SQL Database without needing any virtual network rules or IP rules.

Doch im September 2017 gehört der Azure SQL-Datenbank-Dienst noch nicht zu den Diensten, die einem Subnetz zugewiesen werden können.However as of September 2017, the Azure SQL Database service is not yet among the services that can be assigned to a subnet.

Details zu VNET-RegelnDetails about virtual network rules

In diesem Abschnitt werden verschiedene Details zu VNET-Regeln beschrieben.This section describes several details about virtual network rules.

Nur eine geografische RegionOnly one geographic region

Jeder Virtual Network-Dienstendpunkt gehört nur zu einer Azure-Region.Each Virtual Network service endpoint applies to only one Azure region. Der Endpunkt ermöglicht anderen Regionen nicht das Akzeptieren von Nachrichten aus dem Subnetz.The endpoint does not enable other regions to accept communication from the subnet.

Eine VNET-Regel ist auf die Region beschränkt, zu der der zugrunde liegende Endpunkt gehört.Any virtual network rule is limited to the region that its underlying endpoint applies to.

Auf Serverebene, nicht auf DatenbankebeneServer-level, not database-level

Jede VNET-Regel gilt für den gesamten Azure SQL-Datenbank-Server und nicht nur für eine bestimmte Datenbank auf dem Server.Each virtual network rule applies to your whole Azure SQL Database server, not just to one particular database on the server. Das heißt, dass VNET-Regeln auf Server- und nicht auf Datenbankebene gelten.In other words, virtual network rule applies at the server-level, not at the database-level.

  • Im Gegensatz dazu können IP-Regeln auf beiden Ebenen gelten.In contrast, IP rules can apply at either level.

SicherheitsverwaltungsrollenSecurity administration roles

Bei der Verwaltung der VNET-Dienstendpunkte erfolgt eine Trennung von Sicherheitsrollen.There is a separation of security roles in the administration of Virtual Network service endpoints. Die folgenden Rollen müssen Aktionen ausführen:Action is required from each of the following roles:

  • Netzwerkadministrator:  Aktivieren des Endpunkts.Network Admin:   Turn on the endpoint.
  • Datenbankadministrator:  Aktualisieren der Zugriffssteuerungsliste durch Hinzufügen des angegebenen Subnetzes zum Azure SQL-Datenbank-Server.Database Admin:   Update the access control list (ACL) to add the given subnet to the SQL Database server.

Alternative zur rollenbasierten Zugriffssteuerung:RBAC alternative:

Die Rollen „Netzwerkadministrator“ und „Datenbankadministrator“ haben mehr Zugriffsrechte, als für die Verwaltung von VNET-Regeln erforderlich ist.The roles of Network Admin and Database Admin have more capabilities than are needed to manage virtual network rules. Es wird nur eine Teilmenge der Zugriffsrechte benötigt.Only a subset of their capabilities is needed.

Sie können mit der rollenbasierten Zugriffssteuerung (RBAC) in Azure arbeiten, um eine einzelne benutzerdefinierte Sicherheitsrolle zu erstellen, die nur über die benötigte Teilmenge von Zugriffsrechten verfügt.You have the option of using role-based access control (RBAC) in Azure to create a single custom role that has only the necessary subset of capabilities. Die benutzerdefinierte Rolle kann definiert werden, anstatt den Netzwerk- oder Datenbankadministrator einzubeziehen. Die auf die Sicherheit bezogene Angriffsfläche ist kleiner, wenn Sie einen Benutzer einer benutzerdefinierte Rolle hinzufügen und ihn nicht den beiden anderen wichtigen Administratorrollen hinzufügen.The custom role could be used instead of involving either the Network Admin or the Database Admin. The surface area of your security exposure is lower if you add a user to a custom role, versus adding the user to the other two major administrator roles.

Hinweis

In einigen Fällen befinden sich die Azure SQL-Datenbank und das VNET-Subnetz in unterschiedlichen Abonnements.In some cases the Azure SQL Database and the VNet-subnet are in different subscriptions. In diesen Fällen müssen Sie folgende Konfigurationen sicherstellen:In these cases you must ensure the following configurations:

  • Beide Abonnements müssen demselben Azure Active Directory-Mandanten zugeordnet sein.Both subscriptions must be in the same Azure Active Directory tenant.
  • Der Benutzer muss über die erforderlichen Berechtigungen zum Initiieren der Vorgänge verfügen. Dazu gehören z.B. das Aktivieren von Dienstendpunkten und das Hinzufügen eines VNET-Subnetzes auf dem angegebenen Server.The user has the required permissions to initiate operations, such as enabling service endpoints and adding a VNet-subnet to the given Server.
  • In beiden Abonnements muss der Anbieter „Microsoft.Sql“ registriert sein.Both subscriptions must have the Microsoft.Sql provider registered.

EinschränkungenLimitations

Bei Azure SQL-Datenbank gelten für VNET-Regeln folgende Einschränkungen:For Azure SQL Database, the virtual network rules feature has the following limitations:

  • Eine Web-App kann einer privaten IP in einem VNET/Subnetz zugeordnet werden.A Web App can be mapped to a private IP in a VNet/subnet. Auch wenn Dienstendpunkte im entsprechenden VNET/Subnetz aktiviert sind, haben Verbindungen zwischen der Web-App und dem Server keine VNET-/Subnetzquelle, sondern eine öffentliche Azure-IP-Quelle.Even if service endpoints are turned ON from the given VNet/subnet, connections from the Web App to the server will have an Azure public IP source, not a VNet/subnet source. Um die Verbindung zwischen einer Web-App und einem Server mit VNET-Firewallregeln zu ermöglichen, müssen Sie auf dem Server Azure-Diensten Zugriff auf den Server erlauben.To enable connectivity from a Web App to a server that has VNet firewall rules, you must Allow Azure services to access server on the server.

  • In der Firewall für Ihre SQL-Datenbank verweist jede VNET-Regel auf ein Subnetz.In the firewall for your SQL Database, each virtual network rule references a subnet. Alle Subnetze, auf die verwiesen wird, müssen in derselben geografischen Region gehostet werden, in der die SQL-Datenbank gehostet wird.All these referenced subnets must be hosted in the same geographic region that hosts the SQL Database.

  • Für jeden Azure SQL-Datenbank-Server können für ein angegebenes virtuelles Netzwerk maximal 128 Einträge in der Zugriffssteuerungsliste vorhanden sein.Each Azure SQL Database server can have up to 128 ACL entries for any given virtual network.

  • VNET-Regeln gelten nur für virtuelle Netzwerke gemäß dem Azure Resource Manager-Modell und nicht gemäß dem klassischen Bereitstellungsmodell.Virtual network rules apply only to Azure Resource Manager virtual networks; and not to classic deployment model networks.

  • Durch das Aktivieren von VNET-Dienstendpunkten für Azure SQL-Datenbank werden auch die Endpunkte für die Azure-Dienste MySQL und PostgreSQL aktiviert.Turning ON virtual network service endpoints to Azure SQL Database also enables the endpoints for the MySQL and PostgreSQL Azure services. Jedoch treten bei Verbindungen von den Endpunkten mit den MySQL- oder PostgreSQL-Instanzen möglicherweise Fehler auf, wenn Endpunkte aktiviert sind.However, with endpoints ON, attempts to connect from the endpoints to your MySQL or PostgreSQL instances may fail.

    • Der Grund dafür ist, dass für MySQL und PostgreSQL wahrscheinlich keine VNET-Regel konfiguriert wurde.The underlying reason is that MySQL and PostgreSQL likely do not have a virtual network rule configured. Sie müssen für Azure Database for MySQL und PostgreSQL eine VNET-Regel konfigurieren, damit die Verbindung erfolgreich hergestellt wird.You must configure a virtual network rule for Azure Database for MySQL and PostgreSQL and the connection will succeed.
  • In der Firewall gelten zwar IP-Adressbereiche für die folgenden Netzwerkelemente, VNET-Regeln jedoch nicht:On the firewall, IP address ranges do apply to the following networking items, but virtual network rules do not:

Überlegungen zur Verwendung von DienstendpunktenConsiderations when using Service Endpoints

Stellen Sie bei der Verwendung von Dienstendpunkten für die Azure SQL-Datenbank folgende Überlegungen an:When using service endpoints for Azure SQL Database, review the following considerations:

  • Ausgehend zu öffentlichen IP-Adressen der Azure SQL-Datenbank ist erforderlich: Netzwerksicherheitsgruppen (NSGs) müssen für IP-Adressen der Azure SQL-Datenbank geöffnet werden, um Verbindungen zuzulassen.Outbound to Azure SQL Database Public IPs is required: Network Security Groups (NSGs) must be opened to Azure SQL Database IPs to allow connectivity. Sie erreichen dies, indem Sie Diensttags der Netzwerksicherheitsgruppe für die Azure SQL-Datenbank verwenden.You can do this by using NSG Service Tags for Azure SQL Database.

ExpressRouteExpressRoute

Wenn Sie ExpressRoute lokal für öffentliches Peering oder für Microsoft-Peering verwenden, müssen Sie die verwendeten NAT-IP-Adressen identifizieren.If you are using ExpressRoute from your premises, for public peering or Microsoft peering, you will need to identify the NAT IP addresses that are used. Beim öffentlichen Peering werden für jede ExpressRoute-Verbindung standardmäßig zwei NAT-IP-Adressen verwendet. Diese werden auf den Datenverkehr der Azure-Dienste angewendet, wenn der Datenverkehr im Microsoft Azure-Netzwerk-Backbone eintrifft.For public peering, each ExpressRoute circuit by default uses two NAT IP addresses applied to Azure service traffic when the traffic enters the Microsoft Azure network backbone. Beim Microsoft-Peering werden die verwendeten NAT-IP-Adressen entweder vom Kunden oder vom Dienstanbieter bereitgestellt.For Microsoft peering, the NAT IP address(es) that are used are either customer provided or are provided by the service provider. Um den Zugriff auf Ihre Dienstressourcen zuzulassen, müssen Sie diese öffentlichen IP-Adressen in der Ressourceneinstellung der IP-Firewall zulassen.To allow access to your service resources, you must allow these public IP addresses in the resource IP firewall setting. Öffnen Sie über das Azure-Portal ein Supportticket für ExpressRoute, um die IP-Adressen Ihrer ExpressRoute-Verbindung für öffentliches Peering zu ermitteln.To find your public peering ExpressRoute circuit IP addresses, open a support ticket with ExpressRoute via the Azure portal. Erfahren Sie mehr über NAT für öffentliches ExpressRoute-Peering und Microsoft-Peering.Learn more about NAT for ExpressRoute public and Microsoft peering.

Um die Kommunikation von Ihrer Verbindung mit Azure SQL-Datenbank zu ermöglichen, müssen Sie IP-Netzwerkregeln für die öffentlichen IP-Adressen Ihrer Netzwerkadressenübersetzung erstellen.To allow communication from your circuit to Azure SQL Database, you must create IP network rules for the public IP addresses of your NAT.

Auswirkungen des Entfernens des Zugriffs „Azure-Diensten Zugriff auf den Server erlauben“Impact of removing 'Allow Azure services to access server'

Viele Benutzer möchten den Zugriff Azure-Diensten Zugriff auf den Server erlauben von ihren Azure SQL-Servern entfernen und durch eine VNET-Firewallregel ersetzen.Many users want to remove Allow Azure services to access server from their Azure SQL Servers and replace it with a VNet Firewall Rule. Das Entfernen wirkt sich aber auf die folgenden Features aus:However removing this affects the following features:

Import/Export-DienstImport Export Service

Der Azure SQL-Datenbank-Import-/Exportdienst wird auf virtuellen Computern in Azure ausgeführt.Azure SQL Database Import Export Service runs on VMs in Azure. Diese virtuellen Computer befinden sich nicht in Ihrem VNET und erhalten daher beim Verbinden mit Ihrer Datenbank eine Azure-IP-Adresse.These VMs are not in your VNet and hence get an Azure IP when connecting to your database. Beim Entfernen des Zugriffs Azure-Diensten den Zugriff auf den Server erlauben können diese virtuellen Computer nicht mehr auf Ihre Datenbanken zugreifen.On removing Allow Azure services to access server these VMs will not be able to access your databases. Sie können das Problem umgehen.You can work around the problem. Führen Sie den BACPAC-Import oder -Export mithilfe der mithilfe der DACFx-API direkt im Code aus.Run the BACPAC import or export directly in your code by using the DACFx API. Stellen Sie sicher, dass die Bereitstellung auf einem virtuellen Computer in dem VNET-Subnetz erfolgt, für das Sie die Firewallregel festgelegt haben.Ensure that this is deployed in a VM that is in the VNet-subnet for which you have set the firewall rule.

Abfrage-Editor für SQL-DatenbankSQL Database Query Editor

Der Abfrage-Editor für Azure SQL-Datenbank wird auf virtuellen Computern in Azure bereitgestellt.The Azure SQL Database Query Editor is deployed on VMs in Azure. Diese virtuellen Computer befinden sich nicht in Ihrem VNET.These VMs are not in your VNet. Aus diesem Grund erhalten die virtuellen Computer beim Verbinden mit Ihrer Datenbank eine Azure-IP-Adresse.Therefore the VMs get an Azure IP when connecting to your database. Beim Entfernen von Azure-Diensten den Zugriff auf den Server erlauben können diese virtuellen Computer nicht mehr auf Ihre Datenbanken zugreifen.On removing Allow Azure services to access server, these VMs will not be able to access your databases.

TabellenüberwachungTable Auditing

Derzeit stehen Ihnen zwei Möglichkeiten zum Aktivieren der Überwachung für Ihre SQL-Datenbank-Instanz zur Verfügung.At present there are two ways to enable auditing on your SQL Database. Die Tabellenüberwachung führt zu einem Fehler, nachdem Sie Dienstendpunkte in Ihrer Azure SQL Server-Instanz aktiviert haben.Table auditing fails after you have enabled service endpoints on your Azure SQL Server. Um dieses Problem zu umgehen, wechseln Sie zur Blobüberwachung.Mitigation here is to move to Blob auditing.

Auswirkungen auf die DatensynchronisierungImpact on Data Sync

Azure SQL-Datenbank verfügt über ein Datensynchronisierungsfeature, das unter Verwendung von Azure-IP-Adressen eine Verbindung mit Ihren Datenbanken herstellt.Azure SQL Database has the Data Sync feature that connects to your databases using Azure IPs. Bei der Verwendung von Dienstendpunkten werden Sie wahrscheinlich den Zugriff Allen Azure-Diensten Zugriff auf den Server erlauben auf Ihrem SQL-Datenbank-Server deaktivieren.When using service endpoints, it is likely that you will turn off Allow Azure services to access server access to your SQL Database server. Dadurch wird die Datensynchronisierungsfunktion unterbrochen.This will break the Data Sync feature.

Auswirkungen der Verwendung von VNET-Dienstendpunkten mit Azure StorageImpact of using VNet Service Endpoints with Azure storage

In Azure Storage ist dasselbe Feature implementiert, mit dem Sie die Konnektivität mit Ihrem Azure Storage-Konto beschränken können.Azure Storage has implemented the same feature that allows you to limit connectivity to your Azure Storage account. Wenn Sie dieses Feature mit einem Azure Storage-Konto verwenden, das von Azure SQL Server verwendet wird, können Probleme auftreten.If you choose to use this feature with an Azure Storage account that is being used by Azure SQL Server, you can run into issues. Im Folgenden finden Sie eine Liste mit Erläuterungen der Features von Azure SQL-Datenbank und Azure SQL Data Warehouse, die hiervon betroffen sind.Next is a list and discussion of Azure SQL Database and Azure SQL Data Warehouse features that are impacted by this.

Azure SQL Data Warehouse – PolyBaseAzure SQL Data Warehouse PolyBase

PolyBase wird häufig verwendet, um Daten aus Azure Storage-Konten in Azure SQL Data Warehouse zu laden.PolyBase is commonly used to load data into Azure SQL Data Warehouse from Azure Storage accounts. Wenn das Azure Storage-Konto, aus dem Sie Daten laden, den Zugriff auf einen Satz von VNET-Subnetzen beschränkt, wird die Konnektivität zwischen PolyBase und dem Konto unterbrochen.If the Azure Storage account that you are loading data from limits access only to a set of VNet-subnets, connectivity from PolyBase to the Account will break. Führen Sie die unten angegebenen Schritte aus, um PolyBase-Import- und -Exportszenarien zu ermöglichen, in denen Azure SQL Data Warehouse eine Verbindung mit Azure Storage (im VNET gesichert) herstellt:For enabling both PolyBase import and export scenarios with Azure SQL Data Warehouse connecting to Azure Storage that's secured to VNet, follow the steps indicated below:

VoraussetzungenPrerequisites

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For installation instructions, see Install Azure PowerShell.

Wichtig

Das PowerShell Azure Resource Manager-Modul wird von Azure SQL-Datenbank weiterhin unterstützt, aber alle zukünftigen Entwicklungen erfolgen für das Az.Sql-Modul.The PowerShell Azure Resource Manager module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. Informationen zu diesen Cmdlets finden Sie unter AzureRM.Sql.For these cmdlets, see AzureRM.Sql. Die Argumente für die Befehle im Az- und den AzureRm-Modulen sind im Wesentlichen identisch.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical.

  1. Installieren Sie Azure PowerShell anhand dieses Leitfadens.Install Azure PowerShell using this guide.
  2. Falls Sie über ein universelles Speicherkonto (v1) oder ein Blobspeicherkonto verfügen, müssen Sie zuerst das Upgrade auf Version 2 des universellen Speicherkontos durchführen, indem Sie diesen Leitfaden verwenden.If you have a general-purpose v1 or blob storage account, you must first upgrade to general-purpose v2 using this guide.
  3. Im Einstellungsmenü Firewalls und virtuelle Netzwerke des Azure Storage-Kontos muss die Option Vertrauenswürdigen Microsoft-Diensten den Zugriff auf dieses Speicherkonto erlauben aktiviert sein.You must have Allow trusted Microsoft services to access this storage account turned on under Azure Storage account Firewalls and Virtual networks settings menu. Weitere Informationen finden Sie in diesem Leitfaden.Refer to this guide for more information.

SchritteSteps

  1. Registrieren Sie Ihren SQL-Datenbank-Server in PowerShell mit Azure Active Directory (AAD):In PowerShell, register your SQL Database server with Azure Active Directory (AAD):

    Connect-AzAccount
    Select-AzSubscription -SubscriptionId your-subscriptionId
    Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-database-servername -AssignIdentity
    
    1. Erstellen Sie ein Speicherkonto vom Typ „Universell v2“, indem Sie diesen Leitfaden verwenden.Create a general-purpose v2 Storage Account using this guide.

    Hinweis

    • Falls Sie über ein universelles Speicherkonto (v1) oder ein Blobspeicherkonto verfügen, müssen Sie zuerst das Upgrade auf Version 2 durchführen, indem Sie diesen Leitfaden verwenden.If you have a general-purpose v1 or blob storage account, you must first upgrade to v2 using this guide.
    • Informationen zu bekannten Problemen mit Azure Data Lake Storage Gen2 finden Sie in diesem Leitfaden.For known issues with Azure Data Lake Storage Gen2, please refer to this guide.
  2. Navigieren Sie unter Ihrem Speicherkonto zu Zugriffssteuerung (IAM), und klicken Sie auf Rollenzuweisung hinzufügen.Under your storage account, navigate to Access Control (IAM), and click Add role assignment. Weisen Sie Ihrem SQL-Datenbank-Server die RBAC-Rolle Mitwirkender an Storage-Blobdaten zu.Assign Storage Blob Data Contributor RBAC role to your SQL Database server.

    Hinweis

    Nur Mitglieder mit der Berechtigung „Besitzer“ können diesen Schritt ausführen.Only members with Owner privilege can perform this step. Verschiedene integrierte Rollen für Azure-Ressourcen finden Sie in diesem Leitfaden.For various built-in roles for Azure resources, refer to this guide.

  3. PolyBase-Konnektivität mit dem Azure Storage-Konto:Polybase connectivity to the Azure Storage account:

    1. Erstellen Sie einen Masterschlüssel für die Datenbank, falls Sie dies noch nicht durchgeführt haben:Create a database master key if you haven't created one earlier:

      CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
      
    2. Erstellen Sie mit IDENTITY = 'Managed Service Identity' datenbankweit gültige Anmeldeinformationen:Create database scoped credential with IDENTITY = 'Managed Service Identity':

      CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
      

      Hinweis

      • Es ist nicht erforderlich, für den Azure Storage-Zugriffsschlüssel den Zusatz SECRET anzugeben, da bei diesem Vorgang die verwaltete Identität im Hintergrund verwendet wird.There is no need to specify SECRET with Azure Storage access key because this mechanism uses Managed Identity under the covers.
      • Der IDENTITY-Name sollte 'Managed Service Identity' lauten, damit die PolyBase-Konnektivität mit dem im VNET gesicherten Azure Storage-Konto funktioniert.IDENTITY name should be 'Managed Service Identity' for PolyBase connectivity to work with Azure Storage account secured to VNet.
    3. Erstellen Sie mit dem Schema „abfss://“ eine externe Datenquelle für die Verbindungsherstellung mit Ihrem Speicherkonto vom Typ „Universell v2“, indem Sie PolyBase verwenden:Create external data source with abfss:// scheme for connecting to your general-purpose v2 storage account using PolyBase:

      CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
      

      Hinweis

      • Falls dem Speicherkonto vom Typ „Universell v1“ oder dem Blobspeicherkonto bereits externe Tabellen zugeordnet sind, sollten Sie zuerst diese externen Tabellen und dann die entsprechende externe Datenquelle verwerfen.If you already have external tables associated with general-purpose v1 or blob storage account, you should first drop those external tables and then drop corresponding external data source. Erstellen Sie anschließend mit dem Schema „abfss://“ eine externe Datenquelle, um wie oben die Verbindung mit dem Speicherkonto vom Typ „Universell v2“ herzustellen, und erstellen Sie dann alle externen Tabellen neu, indem Sie diese neue externe Datenquelle verwenden.Then create external data source with abfss:// scheme connecting to general-purpose v2 storage account as above and re-create all the external tables using this new external data source. Sie können den Assistenten zum Generieren und Veröffentlichen von Skripts verwenden, um auf einfache Weise Erstellungsskripts für alle externen Tabellen zu generieren.You could use Generate and Publish Scripts Wizard to generate create-scripts for all the external tables for ease.
      • Weitere Informationen zum Schema „abfss://“ finden Sie in diesem Leitfaden.For more information on abfss:// scheme, refer to this guide.
      • Weitere Informationen zu CREATE EXTERNAL DATA SOURCE finden Sie in diesem Leitfaden.For more information on CREATE EXTERNAL DATA SOURCE, refer to this guide.
    4. Führen Sie Abfragen wie gewohnt durch, indem Sie externe Tabellen verwenden.Query as normal using external tables.

Azure SQL-Datenbank – BlobüberwachungAzure SQL Database Blob Auditing

Bei der Blobüberwachung werden die Überwachungsprotokolle in Ihr eigenes Speicherkonto gepusht.Blob auditing pushes audit logs to your own storage account. Wenn dieses Speicherkonto das Feature für VNET-Dienstendpunkte verwendet, wird die Konnektivität zwischen Azure SQL-Datenbank und dem Speicherkonto unterbrochen.If this storage account uses the VNet Service endpoints feature then connectivity from Azure SQL Database to the storage account will break.

Hinzufügen einer VNET-Firewallregel zu Ihrem Server ohne Aktivierung von VNET-DienstendpunktenAdding a VNet Firewall rule to your server without turning On VNet Service Endpoints

Vor der Verbesserung dieses Features mussten Sie die VNET-Dienstendpunkte aktivieren, bevor Sie eine Live-VNET-Regel in der Firewall implementieren konnten.Long ago, before this feature was enhanced, you were required to turn VNet service endpoints On before you could implement a live VNet rule in the Firewall. Die Endpunkte verknüpften ein bestimmtes VNET-Subnetz mit einer Azure SQL-Datenbank.The endpoints related a given VNet-subnet to an Azure SQL Database. Aber seit Januar 2018 können Sie diese Anforderung umgehen, indem Sie das Flag IgnoreMissingVNetServiceEndpoint festlegen.But now as of January 2018, you can circumvent this requirement by setting the IgnoreMissingVNetServiceEndpoint flag.

Allein das Festlegen einer Firewallregel trägt nicht zur Sicherung des Servers bei.Merely setting a Firewall rule does not help secure the server. Sie müssen auch VNET-Dienstendpunkte aktivieren, damit der Server gesichert wird.You must also turn VNet service endpoints On for the security to take effect. Wenn Sie Dienstendpunkte aktivieren, fällt das VNET-Subnetz solange aus, bis der Übergang von „deaktiviert“ zu „aktiviert“ abgeschlossen ist.When you turn service endpoints On, your VNet-subnet experiences downtime until it completes the transition from Off to On. Dies gilt vor allem für sehr umfangreiche VNETs.This is especially true in the context of large VNets. Mithilfe des Flags IgnoreMissingVNetServiceEndpoint können Sie die Ausfallzeit während des Übergangs reduzieren bzw. vermeiden.You can use the IgnoreMissingVNetServiceEndpoint flag to reduce or eliminate the downtime during transition.

Verwenden Sie PowerShell, um das Flag IgnoreMissingVNetServiceEndpoint festzulegen.You can set the IgnoreMissingVNetServiceEndpoint flag by using PowerShell. Weitere Informationen finden Sie unter Verwenden von PowerShell zum Erstellen eines Virtual Network-Dienstendpunkts und einer Regel für Azure SQL-Datenbank.For details, see PowerShell to create a Virtual Network service endpoint and rule for Azure SQL Database.

Fehler 40914 und 40615Errors 40914 and 40615

Der Verbindungsfehler 40914 bezieht sich auf VNET-Regeln, die im Azure-Portal im Bereich „Firewall“ angegeben werden.Connection error 40914 relates to virtual network rules, as specified on the Firewall pane in the Azure portal. Beim Fehler 40615 verhält es sich ähnlich, nur dass sich dieser Fehler auf IP-Adressregeln in der Firewall bezieht.Error 40615 is similar, except it relates to IP address rules on the Firewall.

Fehler 40914Error 40914

Nachrichtentext: Der bei der Anmeldung angeforderte Server „[Servername]“ kann nicht geöffnet werden.Message text: Cannot open server '[server-name]' requested by the login. Dem Client ist der Zugriff auf den Server nicht gestattet.Client is not allowed to access the server.

Fehlerbeschreibung: Der Client befindet sich in einem Subnetz, das Endpunkte des virtuellen Netzwerkservers enthält.Error description: The client is in a subnet that has virtual network server endpoints. Der Azure SQL-Datenbank-Server enthält jedoch keine VNET-Regeln, die dem Subnetz die Berechtigung zur Kommunikation mit der SQL-Datenbank gewähren.But the Azure SQL Database server has no virtual network rule that grants to the subnet the right to communicate with the SQL Database.

Fehlerbehebung: Verwenden Sie im Azure-Portal im Bereich „Firewall“ die Steuerung von VNET-Regeln, um VNET-Regel für das Subnetz hinzuzufügen.Error resolution: On the Firewall pane of the Azure portal, use the virtual network rules control to add a virtual network rule for the subnet.

Fehler 40615Error 40615

Nachrichtentext: Der für die Anmeldung angeforderte Server „{0}“ kann nicht geöffnet werden.Message text: Cannot open server '{0}' requested by the login. Der Client mit der IP-Adresse „{1}“ hat keine Zugriffsberechtigung für den Server.Client with IP address '{1}' is not allowed to access the server.

Fehlerbeschreibung: Der Client versucht, eine Verbindung über eine IP-Adresse herzustellen, die nicht zum Herstellen einer Verbindung mit dem Azure SQL-Datenbank-Server autorisiert ist.Error description: The client is trying to connect from an IP address that is not authorized to connect to the Azure SQL Database server. Die Serverfirewall enthält keine IP-Adressregel, die einem Client die Kommunikation mit der SQL-Datenbank über eine bestimmte IP-Adresse erlaubt.The server firewall has no IP address rule that allows a client to communicate from the given IP address to the SQL Database.

Fehlerbehebung: Geben Sie als IP-Regel die IP-Adresse des Clients ein.Error resolution: Enter the client's IP address as an IP rule. Tun Sie dies im Bereich „Firewall“ des Azure-Portals.Do this by using the Firewall pane in the Azure portal.

Eine Liste verschiedener Fehlermeldungen der SQL-Datenbank ist hier dokumentiert.A list of several SQL Database error messages is documented here.

Erstellen einer VNET-Regel über das PortalPortal can create a virtual network rule

In diesem Abschnitt wird veranschaulicht, wie Sie im Azure-Portal eine VNET-Regel in Ihrer Azure SQL-Datenbank-Instanz erstellen.This section illustrates how you can use the Azure portal to create a virtual network rule in your Azure SQL Database. Die Regel weist Ihre SQL-Datenbank-Instanz an, Nachrichten von einem bestimmten Subnetz zu akzeptieren, das als VNET-Dienstendpunkt gekennzeichnet ist.The rule tells your SQL Database to accept communication from a particular subnet that has been tagged as being a Virtual Network service endpoint.

Hinweis

Wenn Sie beabsichtigen, einen Dienstendpunkt zu den VNET-Firewallregeln Ihres Azure SQL-Datenbank-Servers hinzuzufügen, stellen Sie zunächst sicher, dass die Dienstendpunkte für das Subnetz eingeschaltet sind.If you intend to add a service endpoint to the VNet firewall rules of your Azure SQL Database server, first ensure that service endpoints are turned On for the subnet.

Wenn Dienstendpunkte für das Subnetz nicht eingeschaltet werden, fordert Sie das Portal auf, diese zu aktivieren.If service endpoints are not turned on for the subnet, the portal asks you to enable them. Klicken Sie auf demselben Blatt, auf dem Sie auch die Regel hinzufügen, auf die Schaltfläche Aktivieren.Click the Enable button on the same blade on which you add the rule.

PowerShell-AlternativePowerShell alternative

VNET-Regeln können auch mit einem PowerShell-Skript erstellt werden.A PowerShell script can also create virtual network rules. Dazu dient das Cmdlet New-AzSqlServerVirtualNetworkRule.The crucial cmdlet New-AzSqlServerVirtualNetworkRule. Lesen Sie bei Interesse Verwenden von PowerShell zum Erstellen eines Virtual Network-Dienstendpunkts und einer Regel für Azure SQL-Datenbank.If interested, see PowerShell to create a Virtual Network service endpoint and rule for Azure SQL Database.

REST-API-AlternativeREST API alternative

Intern rufen die PowerShell-Cmdlets für SQL-VNet-Aktionen REST-APIs auf.Internally, the PowerShell cmdlets for SQL VNet actions call REST APIs. Sie können die REST-APIs direkt aufrufen.You can call the REST APIs directly.

VoraussetzungenPrerequisites

Falls Sie bereits ein Subnetz haben, das mit dem bestimmten Virtual Network-Dienstendpunkt gekennzeichnet ist, geben Sie den Namen ein, der zur Azure SQL-Datenbank-Instanz gehört.You must already have a subnet that is tagged with the particular Virtual Network service endpoint type name relevant to Azure SQL Database.

Schritte im Azure-PortalAzure portal steps

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Navigieren Sie dann im Portal zu Computer mit SQL Server>Firewall/Virtuelle Netzwerke.Then navigate the portal to SQL servers > Firewall / Virtual Networks.

  3. Legen Sie das Steuerelement Zugriff auf Azure-Dienste erlauben auf AUS fest.Set the Allow access to Azure services control to OFF.

    Wichtig

    Wenn Sie das Steuerelement auf ON festgelegt lassen, akzeptiert der Azure SQL-Datenbank-Server Kommunikation von beliebigen Subnetzen.If you leave the control set to ON, your Azure SQL Database server accepts communication from any subnet. Das Steuerelement auf ON festgelegt zu lassen, führt also möglicherweise aus Sicht der Sicherheit zu einem übermäßigen Zugriff.Leaving the control set to ON might be excessive access from a security point of view. Mithilfe der Funktionen „Microsoft Azure Virtual Network-Dienstendpunkt“ und „VNET-Regel“ von SQL-Datenbank können Sie die sicherheitsbezogene Angriffsfläche verkleinern.The Microsoft Azure Virtual Network service endpoint feature, in coordination with the virtual network rule feature of SQL Database, together can reduce your security surface area.

  4. Klicken Sie im Abschnitt Virtuelle Netzwerke auf + Vorhandene hinzufügen.Click the + Add existing control, in the Virtual networks section.

    Klicken Sie auf „Vorhandene hinzufügen“ (Subnetzendpunkt, als SQL-Regel).

  5. Füllen Sie im Bereich Erstellen/Aktualisieren die Steuerelemente mit den Namen Ihrer Azure-Ressourcen aus.In the new Create/Update pane, fill in the controls with the names of your Azure resources.

    Tipp

    Sie müssen das richtige Adresspräfix für Ihr Subnetz hinzufügen.You must include the correct Address prefix for your subnet. Den Wert finden Sie im Portal.You can find the value in the portal. Navigieren Sie zu Alle Ressourcen>Alle Typen>Virtuelle Netzwerke.Navigate All resources > All types > Virtual networks. Der Filter zeigt Ihre virtuellen Netzwerke an.The filter displays your virtual networks. Klicken Sie auf das virtuelle Netzwerk und dann auf Subnetze.Click your virtual network, and then click Subnets. Die Spalte ADRESSBEREICH weist das Adresspräfix auf, das Sie benötigen.The ADDRESS RANGE column has the Address prefix you need.

    Füllen Sie Felder für die neue Regel aus.

  6. Klicken Sie am unteren Rand des Bereichs auf die Schaltfläche OK.Click the OK button near the bottom of the pane.

  7. Die resultierende VNET-Regel wird im Firewallbereich angezeigt.See the resulting virtual network rule on the firewall pane.

    Sie finden die neue Regel im Firewallbereich.

Hinweis

Für die Regeln gelten die folgenden Status oder Zustände:The following statuses or states apply to the rules:

  • Bereit: Gibt an, dass der von Ihnen initiierte Vorgang erfolgreich war.Ready: Indicates that the operation that you initiated has Succeeded.
  • Fehlerhaft: Gibt an, dass der von Ihnen initiierte Vorgang zu einem Fehler geführt hat.Failed: Indicates that the operation that you initiated has Failed.
  • Gelöscht: Gilt nur für den Löschvorgang und gibt an, dass die Regel gelöscht wurde und nicht mehr angewendet wird.Deleted: Only applies to the Delete operation, and indicates that the rule has been deleted and no longer applies.
  • In Bearbeitung: Gibt an, dass der Vorgang ausgeführt wird.InProgress: Indicates that the operation is in progress. In diesem Zustand wird die alte Regel weiter angewendet.The old rule applies while the operation is in this state.

Das Feature für VNET-Regeln für Azure SQL-Datenbank wurde Ende September 2017 eingeführt.The virtual network rule feature for Azure SQL Database became available in late September 2017.

Nächste SchritteNext steps