Verwenden von Virtual Network-Dienstendpunkten und -Regeln für Server in Azure SQL-DatenbankUse virtual network service endpoints and rules for servers in Azure SQL Database

GILT FÜR: Azure SQL Database Azure Synapse Analytics

VNET-Regeln sind ein Firewallsicherheitsfeature, mit dem gesteuert wird, ob der Server für Ihre Datenbanken und Pools für elastische Datenbanken in Azure SQL-Datenbank oder für Ihre Datenbanken mit dediziertem SQL-Pool (ehemals SQL DW) in Azure Synapse Analytics Nachrichten akzeptiert, die von bestimmten Subnetzen in virtuellen Netzwerken gesendet werden.Virtual network rules are a firewall security feature that controls whether the server for your databases and elastic pools in Azure SQL Database or for your dedicated SQL pool (formerly SQL DW) databases in Azure Synapse Analytics accepts communications that are sent from particular subnets in virtual networks. In diesem Artikel wird erläutert, warum VNET-Regeln manchmal die beste Möglichkeit darstellen, um eine sichere Kommunikation mit Ihrer Datenbank in SQL-Datenbank und Azure Synapse Analytics zu ermöglichen.This article explains why virtual network rules are sometimes your best option for securely allowing communication to your database in SQL Database and Azure Synapse Analytics.

Hinweis

Dieser Artikel gilt sowohl für SQL-Datenbank als auch für Azure Synapse Analytics.This article applies to both SQL Database and Azure Synapse Analytics. Der Einfachheit halber wird der Begriff Datenbank verwendet, wenn auf Datenbanken sowohl in SQL-Datenbank als auch in Azure Synapse Analytics verwiesen wird.For simplicity, the term database refers to both databases in SQL Database and Azure Synapse Analytics. Ebenso bezieht sich der Begriff Server auf den logischen SQL-Server, der SQL-Datenbank und Azure Synapse Analytics hostet.Likewise, any references to server refer to the logical SQL server that hosts SQL Database and Azure Synapse Analytics.

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 von VNET-RegelnCreate a virtual network rule

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

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 VNET-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 doesn't 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 Server und nicht nur für eine bestimmte Datenbank auf dem Server.Each virtual network rule applies to your whole 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 rules apply 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's 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:

Alternative zur Azure RBACAzure 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 Rolle 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 Datenbank in SQL-Datenbank und das VNET-Subnetz in unterschiedlichen Abonnements.In some cases, the database in SQL Database and the virtual network 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 (Azure AD) zugeordnet sein.Both subscriptions must be in the same Azure Active Directory (Azure AD) 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 virtual network 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 SQL-Datenbank gelten für VNET-Regeln folgende Einschränkungen:For SQL Database, the virtual network rules feature has the following limitations:

  • In der Firewall für Ihre Datenbank in SQL-Datenbank verweist jede VNET-Regel auf ein Subnetz.In the firewall for your database in 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 Datenbank gehostet wird.All these referenced subnets must be hosted in the same geographic region that hosts the database.
  • Für jeden Server können für ein angegebenes virtuelles Netzwerk maximal 128 Einträge in der Zugriffssteuerungsliste enthalten sein.Each server can have up to 128 ACL entries for any virtual network.
  • VNET-Regeln gelten nur für virtuelle Netzwerke im Azure Resource Manager-Bereitstellungsmodell und nicht im 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 SQL-Datenbank werden auch die Endpunkte für Azure Database for MySQL und Azure Database for PostgreSQL aktiviert.Turning on virtual network service endpoints to SQL Database also enables the endpoints for Azure Database for MySQL and Azure Database for PostgreSQL. Wenn Endpunkte auf EIN festgelegt sind, führen Verbindungsversuche von den Endpunkten mit Ihren Azure Database for MySQL- oder Azure Database for PostgreSQL-Instanzen zu Fehlern.With endpoints set to ON, attempts to connect from the endpoints to your Azure Database for MySQL or Azure Database for PostgreSQL instances might fail.
    • Der Grund dafür ist, dass für Azure Database for MySQL und Azure Database for PostgreSQL wahrscheinlich keine VNET-Regel konfiguriert wurde.The underlying reason is that Azure Database for MySQL and Azure Database for PostgreSQL likely don't have a virtual network rule configured. Sie müssen für Azure Database for MySQL und Azure Database for PostgreSQL eine VNET-Regel konfigurieren, damit die Verbindung erfolgreich hergestellt wird.You must configure a virtual network rule for Azure Database for MySQL and Azure Database for PostgreSQL, and the connection will succeed.
    • Legen Sie zum Definieren von Firewallregeln für virtuelle Netzwerke auf einem logischen SQL-Server, der bereits mit privaten Endpunkten konfiguriert wurde, die Einstellung Zugriff auf öffentliches Netzwerk verweigern auf Nein fest.To define virtual network firewall rules on a SQL logical server that's already configured with private endpoints, set Deny public network access to No.
  • 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 don't:

Überlegungen zur Verwendung von DienstendpunktenConsiderations when you use service endpoints

Berücksichtigen Sie bei der Verwendung von Dienstendpunkten für SQL-Datenbank folgende Überlegungen:When you use service endpoints for SQL Database, review the following considerations:

  • Ausgehend zu öffentlichen IP-Adressen von Azure SQL-Datenbank ist erforderlich:Outbound to Azure SQL Database public IPs is required. Netzwerksicherheitsgruppen (NSGs) müssen für IP-Adressen von SQL-Datenbank geöffnet werden, um Verbindungen zuzulassen.Network security groups (NSGs) must be opened to SQL Database IPs to allow connectivity. Sie erreichen dies, indem Sie für SQL-Datenbank NSG-Diensttags verwenden.You can do this by using NSG service tags for 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 use ExpressRoute from your premises, for public peering or Microsoft peering, you'll 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 addresses that are used are provided by either the customer or 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. Weitere Informationen zur Netzwerkadressenübersetzung für öffentliches ExpressRoute-Peering und Microsoft-Peering finden Sie unter NAT-Anforderungen für öffentliches Azure-Peering.To learn more about NAT for ExpressRoute public and Microsoft peering, see NAT requirements for Azure public peering.

Um die Kommunikation von Ihrer Verbindung mit 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 SQL Database, you must create IP network rules for the public IP addresses of your NAT.

Auswirkungen der Verwendung von VNET-Dienstendpunkten mit Azure StorageImpact of using virtual network 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 SQL-Datenbank genutzt wird, können Probleme auftreten.If you choose to use this feature with an Azure Storage account that SQL Database is using, you can run into issues. Im Folgenden finden Sie eine Liste mit Erläuterungen der Features von SQL-Datenbank und Azure Synapse Analytics, die hiervon betroffen sind.Next is a list and discussion of SQL Database and Azure Synapse Analytics features that are affected by this.

Azure Synapse Analytics PolyBase und COPY-AnweisungAzure Synapse Analytics PolyBase and COPY statement

PolyBase und die COPY-Anweisung werden häufig verwendet, um Daten aus Azure Storage-Konten in Azure Synapse Analytics zu laden und damit einen hohem Durchsatz bei der Datenerfassung zu erzielen.PolyBase and the COPY statement are commonly used to load data into Azure Synapse Analytics from Azure Storage accounts for high throughput data ingestion. Wenn das Azure Storage-Konto, aus dem Sie Daten laden, den Zugriff nur auf eine Gruppe von VNET-Subnetzen beschränkt, wird die Konnektivität mit dem Speicherkonto unterbrochen, wenn PolyBase und die COPY-Anweisung verwendet werden.If the Azure Storage account that you're loading data from limits accesses only to a set of virtual network subnets, connectivity when you use PolyBase and the COPY statement to the storage account will break. Führen Sie die in diesem Abschnitt angegebenen Schritte aus, um Import- und Exportszenarien mit der COPY-Anweisung und PolyBase zu ermöglichen, in denen Azure Synapse Analytics eine Verbindung mit Azure Storage (im VNET gesichert) herstellt.For enabling import and export scenarios by using COPY and PolyBase with Azure Synapse Analytics connecting to Azure Storage that's secured to a virtual network, follow the steps in this section.

VoraussetzungenPrerequisites

  • Installieren Sie Azure PowerShell anhand dieses Leitfadens.Install Azure PowerShell by using this guide.
  • Wenn Sie über ein Konto vom Typ „Universell V1“ oder ein Azure Blob Storage-Konto verfügen, müssen Sie zunächst ein Upgrade auf „Universell V2“ durchführen. Befolgen Sie dazu die Schritte in Durchführen eines Upgrades auf ein Speicherkonto vom Typ „Universell V2“.If you have a general-purpose v1 or Azure Blob Storage account, you must first upgrade to general-purpose v2 by following the steps in Upgrade to a general-purpose v2 storage account.
  • 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 the Azure Storage account Firewalls and Virtual networks settings menu. Die Aktivierung dieser Konfiguration ermöglicht es PolyBase und der COPY-Anweisung, eine Verbindung mit dem Speicherkonto unter Verwendung starker Authentifizierung herzustellen, wobei der Netzwerkdatenverkehr auf dem Azure-Backbone verbleibt.Enabling this configuration will allow PolyBase and the COPY statement to connect to the storage account by using strong authentication where network traffic remains on the Azure backbone. Weitere Informationen finden Sie in diesem Leitfaden.For more information, see this guide.

Wichtig

Das Azure Resource Manager-Modul von PowerShell wird von 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 SQL Database, but all future development is for the Az.Sql module. Das AzureRM-Modul erhält mindestens bis Dezember 2020 weiterhin Fehlerbehebungen.The AzureRM module will continue to receive bug fixes until at least December 2020. Die Argumente für die Befehle im Az-Modul 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. Weitere Informationen zur Kompatibilität finden Sie in der Einführung in das neue Azure PowerShell Az-Modul.For more about their compatibility, see Introducing the new Azure PowerShell Az module.

SchritteSteps

  1. Wenn Sie über einen eigenständigen dedizierten SQL-Pool verfügen, registrieren Sie Ihren SQL-Server mithilfe von PowerShell bei Azure AD:If you have a standalone dedicated SQL pool, register your SQL server with Azure AD by using PowerShell:

    Connect-AzAccount
    Select-AzSubscription -SubscriptionId <subscriptionId>
    Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
    

    Dieser Schritt ist für dedizierte SQL-Pools in einem Azure Synapse Analytics-Arbeitsbereich nicht erforderlich.This step isn't required for dedicated SQL pools within an Azure Synapse Analytics workspace.

  2. Wenn Sie über einen Azure Synapse Analytics-Arbeitsbereich verfügen, registrieren Sie die vom System verwaltete Identität Ihres Arbeitsbereichs:If you have an Azure Synapse Analytics workspace, register your workspace's system-managed identity:

    1. Wechseln Sie im Azure-Portal zu Ihrem Azure Synapse Analytics-Arbeitsbereich.Go to your Azure Synapse Analytics workspace in the Azure portal.
    2. Wechseln Sie zum Bereich Verwaltete Identitäten.Go to the Managed identities pane.
    3. Vergewissern Sie sich, dass die Option Pipelines zulassen aktiviert ist.Make sure the Allow Pipelines option is enabled.
  3. Erstellen Sie anhand der Schritte unter Erstellen eines Speicherkontos ein Speicherkonto vom Typ „Universell V2“ .Create a general-purpose v2 Storage Account by following the steps in Create a storage account.

    Hinweis

  4. Navigieren Sie unter Ihrem Speicherkonto zu Zugriffssteuerung (IAM) , und wählen Sie Rollenzuweisung hinzufügen aus.Under your storage account, go to Access Control (IAM), and select Add role assignment. Weisen Sie dem Server oder Arbeitsbereich, auf bzw. in dem Ihr bei Azure AD registrierter dedizierter SQL-Pool gehostet wird, die Azure-Rolle Mitwirkender an Storage-Blobdaten zu.Assign the Storage Blob Data Contributor Azure role to the server or workspace hosting your dedicated SQL pool, which you've registered with Azure AD.

    Hinweis

    Nur Mitglieder mit der Berechtigung „Besitzer“ für das Speicherkonto können diesen Schritt ausführen.Only members with Owner privilege on the storage account can perform this step. Informationen zu den integrierten Azure-Rollen finden Sie unter Integrierte Azure-Rollen.For various Azure built-in roles, see Azure built-in roles.

  5. So aktivieren Sie PolyBase-Konnektivität mit dem Azure Storage-KontoTo enable 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 a 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's no need to specify SECRET with an 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 virtuellen Netzwerk geschützten Azure Storage-Konto funktioniert.The IDENTITY name should be 'Managed Service Identity' for PolyBase connectivity to work with an Azure Storage account secured to a virtual network.
    3. Erstellen Sie mit dem Schema abfss:// eine externe Datenquelle für die Verbindungsherstellung mit Ihrem Speicherkonto vom Typ „Universell V2“ unter Verwendung von PolyBase.Create an external data source with the 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 Blob Storage-Konto bereits externe Tabellen zugeordnet sind, sollten Sie zuerst diese externen Tabellen verwerfen.If you already have external tables associated with a general-purpose v1 or Blob Storage account, you should first drop those external tables. Trennen Sie danach die entsprechende externe Datenquelle.Then drop the corresponding external data source. Erstellen Sie als Nächstes wie oben gezeigt mit dem Schema abfss:// eine externe Datenquelle, die mit Ihrem Speicherkonto vom Typ „Universell V2“ verbunden ist.Next, create an external data source with the abfss:// scheme that connects to a general-purpose v2 storage account, as previously shown. Erstellen Sie dann alle externen Tabellen mit dieser neuen externen Datenquelle neu.Then re-create all the external tables by 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 the Generate and Publish Scripts Wizard to generate create-scripts for all the external tables for ease.
      • Weitere Informationen zum Schema abfss:// finden Sie unter Verwenden des Azure Data Lake Storage Gen2-URI.For more information on the abfss:// scheme, see Use the Azure Data Lake Storage Gen2 URI.
      • Weitere Informationen zu CREATE EXTERNAL DATA SOURCE finden Sie in diesem Leitfaden.For more information on CREATE EXTERNAL DATA SOURCE, see this guide.
    4. Führen Sie Abfragen wie gewohnt durch, indem Sie externe Tabellen verwenden.Query as normal by using external tables.

SQL-Datenbank – BlobüberwachungSQL 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 SQL-Datenbank und dem Speicherkonto unterbrochen.If this storage account uses the virtual network service endpoints feature, connectivity from SQL Database to the storage account will break.

Hinzufügen einer Firewallregel für virtuelle Netzwerke auf dem ServerAdd a virtual network firewall rule to your server

Vor der Verbesserung dieses Features mussten Sie die VNET-Dienstendpunkte aktivieren, bevor Sie eine aktive VNET-Regel in der Firewall implementieren konnten.Long ago, before this feature was enhanced, you were required to turn on virtual network service endpoints before you could implement a live virtual network rule in the firewall. Die Endpunkte verknüpften ein bestimmtes VNET-Subnetz mit einer Datenbank in SQL-Datenbank.The endpoints related a given virtual network subnet to a database in SQL Database. Seit Januar 2018 können Sie diese Anforderung umgehen, indem Sie das Flag IgnoreMissingVNetServiceEndpoint festlegen.As of January 2018, you can circumvent this requirement by setting the IgnoreMissingVNetServiceEndpoint flag. Nun können Sie auf dem Server eine Firewallregel für virtuelle Netzwerke hinzufügen, ohne VNET-Dienstendpunkte zu aktivieren.Now, you can add a virtual network firewall rule to your server without turning on virtual network service endpoints.

Allein das Festlegen einer Firewallregel trägt nicht zum Schutz des Servers bei.Merely setting a firewall rule doesn't help secure the server. Sie müssen auch VNET-Dienstendpunkte aktivieren, damit der Server geschützt wird.You must also turn on virtual network service endpoints 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 on service endpoints, your virtual network subnet experiences downtime until it completes the transition from turned off to on. Diese Ausfallzeit ist insbesondere bei großen virtuellen Netzwerken von Bedeutung.This period of downtime is especially true in the context of large virtual networks. 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 VNET-Dienstendpunkts und einer Regel für SQL-Datenbank.For more information, see PowerShell to create a virtual network service endpoint and rule for 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 Server enthält jedoch keine VNET-Regeln, die dem Subnetz die Berechtigung zur Kommunikation mit der Datenbank gewähren.But the server has no virtual network rule that grants to the subnet the right to communicate with the database.

Fehlerbehebung: Verwenden Sie im Azure-Portal im Bereich Firewall die Steuerung von VNET-Regeln, um eine 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: „In Anmeldung angeforderter 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 Server autorisiert ist.Error description: The client is trying to connect from an IP address that isn't authorized to connect to the server. Die Serverfirewall enthält keine IP-Adressregel, die einem Client die Kommunikation mit der 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 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. Führen Sie diesen Schritt im Bereich Firewall des Azure-Portals aus.Use the Firewall pane in the Azure portal to do this step.

Erstellen einer VNET-Regel im PortalUse the portal to create a virtual network rule

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

Hinweis

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

Wenn Dienstendpunkte für das Subnetz nicht aktiviert sind, werden Sie im Portal dazu aufgefordert.If service endpoints aren't turned on for the subnet, the portal asks you to enable them. Wählen Sie im selben Bereich, auf dem Sie auch die Regel hinzufügen, die Schaltfläche Aktivieren aus.Select the Enable button on the same pane on which you add the rule.

PowerShell-AlternativePowerShell alternative

Mit einem Skript können Sie auch VNET-Regeln erstellen. Verwenden Sie dazu das PowerShell-Cmdlet New-AzSqlServerVirtualNetworkRule oder den Befehl az network vnet create.A script can also create virtual network rules by using the PowerShell cmdlet New-AzSqlServerVirtualNetworkRule or az network vnet create. Lesen Sie bei Interesse Verwenden von PowerShell zum Erstellen eines VNET-Dienstendpunkts und einer Regel für SQL-Datenbank.If you're interested, see PowerShell to create a virtual network service endpoint and rule for 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 virtual network 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 VNET-Dienstendpunkt gekennzeichnet ist, geben Sie den Namen ein, der zur SQL-Datenbank-Instanz gehört.You must already have a subnet that's tagged with the particular virtual network service endpoint type name relevant to SQL Database.

Schritte im Azure-PortalAzure portal steps

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

  2. Suchen Sie nach SQL-Server, und wählen Sie dann Ihren Server aus.Search for and select SQL servers, and then select your server. Wählen Sie unter Sicherheit die Option Firewalls und virtuelle Netzwerke aus.Under Security, select Firewalls and virtual networks.

  3. Legen Sie Zugriff auf Azure-Dienste zulassen auf AUS fest.Set Allow access to Azure services to OFF.

    Wichtig

    Wenn Sie das Steuerelement auf EIN festgelegt lassen, akzeptiert der Server Kommunikation von beliebigen Subnetzen in Azure.If you leave the control set to ON, your server accepts communication from any subnet inside the Azure boundary. Dies umfasst die gesamte Kommunikation, die von einer der IP-Adressen stammt, die innerhalb der für Azure-Rechenzentren definierten Bereiche liegen.That is communication that originates from one of the IP addresses that's recognized as those within ranges defined for Azure datacenters. Das Steuerelement auf EIN 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 Features VNET-Dienstendpunkte von Microsoft Azure und VNET-Regeln von SQL-Datenbank können Sie die sicherheitsrelevante Angriffsfläche verkleinern.The Microsoft Azure Virtual Network service endpoint feature in coordination with the virtual network rules feature of SQL Database together can reduce your security surface area.

  4. Wählen Sie im Abschnitt Virtuelle Netzwerke die Option + Vorhandene hinzufügen aus.Select + Add existing in the Virtual networks section.

    Screenshot der Auswahl von „+ Vorhandene hinzufügen“ (Subnetzendpunkt, als SQL-Regel)

  5. Füllen Sie im Bereich Erstellen/Aktualisieren die Felder mit den Namen Ihrer Azure-Ressourcen aus.In the new Create/Update pane, fill in the boxes 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 für das Adresspräfix finden Sie im Portal.You can find the Address prefix value in the portal. Navigieren Sie zu Alle Ressourcen > Alle Typen > Virtuelle Netzwerke.Go to All resources > All types > Virtual networks. Der Filter zeigt Ihre virtuellen Netzwerke an.The filter displays your virtual networks. Wählen Sie Ihr virtuelles Netzwerk und dann Subnetze aus.Select your virtual network, and then select Subnets. Die Spalte ADRESSBEREICH enthält das Adresspräfix, das Sie benötigen.The ADDRESS RANGE column has the address prefix you need.

    Screenshot des Ausfüllens der Felder für die neue Regel

  6. Wählen Sie am unteren Rand des Bereichs die Schaltfläche OK aus.Select the OK button near the bottom of the pane.

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

    Screenshot der neuen Regel im Bereich „Firewall“

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 you initiated has succeeded.
  • Fehler: Gibt an, dass der von Ihnen initiierte Vorgang zu einem Fehler geführt hat.Failed: Indicates that the operation 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 angewandt wird.Deleted: Only applies to the Delete operation and indicates that the rule has been deleted and no longer applies.
  • InProgress (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.

Nächste SchritteNext steps