Freigeben über


Herstellen einer Verbindung mit einer durch Azure Arc aktivierten SQL Managed Instance-Instanz

In diesem Artikel wird erläutert, wie Sie mithilfe standardmäßiger SQL Server-Clienttools eine Verbindung mit Ihrer von Azure Arc aktivierten SQL Managed Instance herstellen.

Anzeigen von durch Azure Arc aktiviertem SQL Managed Instance

Verwenden Sie den folgenden Befehl, um die Instanz und die externen Endpunkte anzuzeigen:

az sql mi-arc list --k8s-namespace <namespace> --use-k8s -o table

Das Ergebnis sollte wie folgt aussehen:

Name       PrimaryEndpoint      Replicas    State
---------  -------------------  ----------  -------
sqldemo    10.240.0.107,1433    1/1         Ready

Wenn Sie AKS oder Kubeadm oder OpenShift usw. verwenden, können Sie die externe IP- und Portnummer von hier aus kopieren und über Ihr bevorzugtes Tool eine Verbindung mit einer SQL Server/Azure SQL-Instanz wie SQL Server Management Studio (SSMS) oder sqlcmd herstellen. Wenn Sie jedoch die Schnellstart-VM verwenden, finden Sie unten weitere Informationen zum Herstellen einer Verbindung mit der VM außerhalb von Azure.

Hinweis

Ihre Unternehmensrichtlinien können den Zugriff auf die IP-Adresse und den Port blockieren, insbesondere, wenn die Erstellung in der öffentlichen Cloud erfolgt.

Verbinden

Herstellen einer Verbindung mit SQL Server Management Studio oder sqlcmd

Verwenden Sie SQL Server Management Studio (SSMS) oder sqlcmd , um eine Verbindung mit Ihrer Instanz mit der oben angegebenen IP-Adresse und Portnummer des externen Endpunkts herzustellen. Wenn Sie eine Azure-VM verwenden, benötigen Sie die öffentliche IP-Adresse, die mit dem besonderen Hinweis zu Azure-VM-Bereitstellungen identifiziert werden kann.

Beispiel:

  • Server: 52.229.9.30,30913
  • Benutzername: sa
  • Kennwort: das zum Zeitpunkt der Bereitstellung angegebene SQL-Kennwort

Hinweis

Um eine Verbindung mit einer verwalteten Instanz herzustellen, die mit einem Kubernetes-Manifest erstellt wurde, muss der Benutzername und das Kennwort sqlcmd in base64-codierter Form bereitgestellt werden.

Um eine Verbindung mit sqlcmd unter Linux oder Windows herzustellen, können Sie einen befehl wie folgt verwenden. Geben Sie bei Aufforderung das SQL-Kennwort ein:

sqlcmd -S 52.229.9.30,30913 -U sa

Besonderer Hinweis zu Azure-VM-Bereitstellungen

Wenn Sie eine Azure-VM verwenden, zeigt die Endpunkt-IP-Adresse die öffentliche IP-Adresse nicht an. Verwenden Sie den folgenden Befehl, um die externe IP-Adresse zu ermitteln:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Sie können die öffentliche IP-Adresse mit dem Port kombinieren, um Ihre Verbindung herzustellen.

Möglicherweise müssen Sie den Port der SQL-Instanz über das Netzwerksicherheitsgateway (NSG) zur Verfügung stellen. Sie müssen eine Regel hinzufügen, um Datenverkehr über das Netzwerksicherheitsgateway zuzulassen. Hierzu können Sie den folgenden Befehl verwenden.

Zum Festlegen einer Regel müssen Sie den Namen Ihrer NSG kennen, den Sie mit dem folgenden Befehl ermitteln können:

az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table

Sobald Sie den Namen des Netzwerksicherheitsgateways kennen, können Sie mithilfe des folgenden Befehls eine Firewallregel hinzufügen. Mit den hier gezeigten Beispielwerten wird eine Netzwerksicherheitsgateway-Regel für Port 30913 erstellt und das Herstellen von Verbindungen über beliebige Quell-IP-Adressen zugelassen. Dies ist keine bewährte Methode hinsichtlich der Sicherheit! Sie können mehr Sicherheit gewährleisten, indem Sie einen Wert „-source-address-prefixes“ festlegen, der spezifisch für Ihre IP-Clientadresse oder einen IP-Adressbereich gilt, der die IP-Adressen Ihres Teams oder Ihrer Organisation umfasst.

Ersetzen Sie den Wert des --destination-port-ranges-Parameters unten durch die Portnummer, die Sie aus dem Befehl az sql mi-arc list oben abgerufen haben.

az network nsg rule create -n db_port --destination-port-ranges 30913 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'