Nawiązywanie połączenia z wystąpieniem zarządzanym SQL włączonym przez usługę Azure Arc
W tym artykule wyjaśniono, jak można nawiązać połączenie z wystąpieniem zarządzanym SQL włączonym przez usługę Azure Arc.
Wyświetlanie wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc
Aby wyświetlić wystąpienie i zewnętrzne punkty końcowe, użyj następującego polecenia:
az sql mi-arc list --k8s-namespace <namespace> --use-k8s -o table
Dane wyjściowe powinny wyglądać następująco:
Name PrimaryEndpoint Replicas State
--------- ------------------- ---------- -------
sqldemo 10.240.0.107,1433 1/1 Ready
Jeśli używasz usługi AKS lub kubeadm lub OpenShift itp., możesz skopiować zewnętrzny adres IP i numer portu z tego miejsca i nawiązać z nim połączenie przy użyciu ulubionego narzędzia do nawiązywania połączenia z wystąpieniem programu SQL Sever/Azure SQL, takim jak Azure Data Studio lub SQL Server Management Studio. Jeśli jednak używasz maszyny wirtualnej szybkiego startu, zobacz poniżej, aby uzyskać specjalne informacje na temat nawiązywania połączenia z maszyną wirtualną spoza platformy Azure.
Uwaga
Zasady firmowe mogą blokować dostęp do adresu IP i portu, zwłaszcza jeśli jest on tworzony w chmurze publicznej.
Połącz
Nawiązywanie połączenia za pomocą programu Azure Data Studio, programu SQL Server Management Studio lub programu SQLCMD
Otwórz narzędzie Azure Data Studio i połącz się z wystąpieniem przy użyciu zewnętrznego adresu IP punktu końcowego i numeru portu powyżej. Jeśli używasz maszyny wirtualnej platformy Azure, potrzebny będzie publiczny adres IP, który można zidentyfikować przy użyciu specjalnej notatki dotyczącej wdrożeń maszyn wirtualnych platformy Azure.
Na przykład:
- Serwer: 52.229.9.30,30913
- Nazwa użytkownika: sa
- Hasło: określone hasło SQL w czasie aprowizacji
Uwaga
Możesz użyć narzędzia Azure Data Studio , aby wyświetlić pulpity nawigacyjne wystąpienia zarządzanego SQL.
Uwaga
Aby nawiązać połączenie z wystąpieniem zarządzanym, które zostało utworzone przy użyciu manifestu kubernetes, należy podać nazwę użytkownika i hasło do narzędzia sqlcmd w postaci zakodowanej w formacie base64.
Aby nawiązać połączenie przy użyciu polecenia SQLCMD lub Linux lub Windows, możesz użyć polecenia w następujący sposób. Wprowadź hasło SQL po wyświetleniu monitu:
sqlcmd -S 52.229.9.30,30913 -U sa
Szczególna uwaga dotycząca wdrożeń maszyn wirtualnych platformy Azure
Jeśli używasz maszyny wirtualnej platformy Azure, adres IP punktu końcowego nie będzie pokazywał publicznego adresu IP. Aby zlokalizować zewnętrzny adres IP, użyj następującego polecenia:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Następnie możesz połączyć publiczny adres IP z portem, aby nawiązać połączenie.
Może być również konieczne uwidocznienie portu wystąpienia sql za pośrednictwem sieciowej grupy zabezpieczeń. Aby zezwolić na ruch przez sieciową grupę zabezpieczeń, należy dodać regułę, którą można wykonać za pomocą następującego polecenia.
Aby ustawić regułę, musisz znać nazwę sieciowej grupy zabezpieczeń, którą można znaleźć za pomocą poniższego polecenia:
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
Po utworzeniu nazwy sieciowej grupy zabezpieczeń możesz dodać regułę zapory przy użyciu następującego polecenia. W tym przykładzie wartości tworzą regułę sieciowej grupy zabezpieczeń dla portu 30913 i zezwalają na połączenie z dowolnego źródłowego adresu IP. Nie jest to najlepsze rozwiązanie dotyczące zabezpieczeń! Można zablokować wszystko lepiej, określając wartość -source-address-prefixes, która jest specyficzna dla adresu IP klienta, lub zakres adresów IP obejmujący adresy IP Twojego zespołu lub Twojej organizacji.
Zastąp wartość poniższego --destination-port-ranges
parametru numerem portu uzyskanym z powyższego az sql mi-arc list
polecenia.
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 '*'