Connessione a Istanza gestita di SQL abilitato da Azure Arc

Questo articolo illustra come connettersi al Istanza gestita di SQL abilitato da Azure Arc.

Visualizzare le Istanza gestita di SQL abilitate da Azure Arc

Per visualizzare l'istanza e gli endpoint esterni, usare il comando seguente:

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

L'output dovrebbe essere simile al seguente:

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

Se si usa il servizio Azure Kubeadm o OpenShift e così via, è possibile copiare l'indirizzo IP esterno e il numero di porta da qui e connettersi usando lo strumento preferito per la connessione a un'istanza di SQL Sever/Azure SQL, ad esempio Azure Data Studio o SQL Server Management Studio. Tuttavia, se si usa la macchina virtuale di avvio rapido, vedere di seguito per informazioni speciali su come connettersi a tale macchina virtuale dall'esterno di Azure.

Nota

I criteri aziendali possono bloccare l'accesso all'INDIRIZZO IP e alla porta, soprattutto se questo viene creato nel cloud pubblico.

Connessione

Connessione con Azure Data Studio, SQL Server Management Studio o SQLCMD

Aprire Azure Data Studio e connettersi all'istanza con l'indirizzo IP dell'endpoint esterno e il numero di porta precedenti. Se si usa una macchina virtuale di Azure, è necessario l'indirizzo IP pubblico , che è identificabile usando la nota speciale sulle distribuzioni di macchine virtuali di Azure.

Ad esempio:

  • Server: 52.229.9.30,30913
  • Nome utente: sa
  • Password: password SQL specificata in fase di provisioning

Nota

È possibile usare Azure Data Studio per visualizzare i dashboard dell'istanza gestita di SQL.

Nota

Per connettersi a un'istanza gestita creata con un manifesto Kubernetes, è necessario specificare il nome utente e la password a sqlcmd in formato con codifica Base64.

Per connettersi usando SQLCMD o Linux o Windows, è possibile usare un comando simile al seguente. Immettere la password SQL quando richiesto:

sqlcmd -S 52.229.9.30,30913 -U sa

Nota speciale sulle distribuzioni di macchine virtuali di Azure

Se si usa una macchina virtuale di Azure, l'indirizzo IP dell'endpoint non mostrerà l'indirizzo IP pubblico. Per individuare l'indirizzo IP esterno, usare il comando seguente:

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

È quindi possibile combinare l'indirizzo IP pubblico con la porta per stabilire la connessione.

Potrebbe anche essere necessario esporre la porta dell'istanza sql tramite il gateway di sicurezza di rete.You may need to expose the port of the sql instance through the network security gateway (NSG). Per consentire il traffico attraverso il gruppo di sicurezza di rete, è necessario aggiungere una regola che è possibile eseguire usando il comando seguente.

Per impostare una regola, è necessario conoscere il nome del gruppo di sicurezza di rete che è possibile trovare usando il comando seguente:

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

Dopo aver ottenuto il nome del gruppo di sicurezza di rete, è possibile aggiungere una regola del firewall usando il comando seguente. I valori di esempio qui creano una regola del gruppo di sicurezza di rete per la porta 30913 e consentono la connessione da qualsiasi indirizzo IP di origine. questa non è procedura di protezione consigliata. È possibile applicare un blocco specificando un valore -source-address-prefixes specifico per l'indirizzo IP del client o un intervallo di indirizzi IP che includa gli indirizzi IP del team o dell'organizzazione.

Sostituire il valore del --destination-port-ranges parametro seguente con il numero di porta ottenuto dal az sql mi-arc list comando precedente.

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 '*'