Hoppa till innehållet
Stackship-dokumentation English

SQL ServerAnvändareMaskinöversatt

Anslut till en instans

Visa en SQL Server-instans anslutningssträng, lämna den till en app, en funktion eller en containerinstans via ett valv, och öppna instansen för klienter utanför klustret.

Kräver: sqlservercluster/readSecrets

En anslutningssträng innehåller lösenordet för sa, så för att visa en krävs sqlservercluster/readSecrets. Rollerna Owner, Contributor och Databases Operator har den; Reader och Database Explorer har den inte. Varje visning registreras i instansens aktivitetslogg.

Hämta anslutningssträngen

På instansens Översikt, under Åtkomstdetaljer, välj Visa bredvid Anslutningssträng. Kopiera kopierar den och Dölj döljer den igen. Det är en ADO.NET-anslutningssträng:

text
Server=tcp:<instance>.<namespace>.svc.cluster.local,1433;Database=<database>;User Id=sa;Password=<password>;Encrypt=true;TrustServerCertificate=true
  • Värden är instansens namn i klustret; <namespace> är resursgruppens namnrymd i klustret. En arbetslast i samma resursgrupp kan också använda enbart instansens namn.
  • Database är den initiala databasen, eller master om instansen skapades utan någon.
  • Ett värde som innehåller ;, = eller ett citattecken omges av dubbla citattecken.
  • Encrypt=true får klienten att kryptera anslutningen; TrustServerCertificate=true får den att godta serverns eget certifikat, som inte är utfärdat av en certifikatutfärdare.

.NET-program som använder Microsoft.Data.SqlClient tar den här formen som den är. API:t returnerar också en JDBC-URL för Java-klienter och verktyg som DBeaver:

text
jdbc:sqlserver://<instance>.<namespace>.svc.cluster.local:1433;databaseName=<database>;user=sa;password=<password>;encrypt=true;trustServerCertificate=true

Med CLI:t, som skriver ut båda formerna, eller med --raw bara ADO.NET-formen:

bash
stsh sqlserver connstr my-sql -g my-resource-group
stsh sqlserver connstr my-sql -g my-resource-group --raw

Använd den i en arbetslast

Plattformen lämnar inte själv över anslutningssträngen till dina arbetslaster. Lägg den i ett valv och referera till den från arbetslasten:

  1. Lägg till anslutningssträngen som en hemlighet i ett valv — se Lägg till en hemlighet.
  2. Referera till hemligheten från arbetslasten: för en app eller en funktion, se Lägg till en hemlighetsreferens, för en containerinstans, se Containerinstanser.

Bara arbetslaster i instansens boundary kan nå den — se Databaser.

Anslut utanför klustret

  1. På instansens flik Konfiguration, öppna Nätverk & säkerhet, slå på Aktivera extern åtkomst och spara. Plattformen tillhandahåller en lastbalanserare på port 1433.
  2. På Översikt visar Extern adress Tillhandahålls… tills lastbalanseraren har fått en adress, och sedan adressen.
  3. Välj Visa bredvid Extern anslutningssträng. Den har samma form, med lastbalanserarens adress som värd — eller, när plattformen har publicerat instansen på en egen adress, den adressen och porten.

Med CLI:t:

bash
stsh sqlserver external-ip my-sql -g my-resource-group
stsh sqlserver connstr my-sql -g my-resource-group --external

För att bara släppa in vissa nätverk väljer du Valda nätverk under Brandvägg i samma avsnitt och anger intervallen i Tillåtna CIDR-block, åtskilda med kommatecken: 10.0.0.0/16, 192.168.1.0/24. Listan gäller bara anslutningar via lastbalanseraren, och bara medan extern åtkomst är påslagen.

Varning

Att slå av Aktivera extern åtkomst igen tar inte bort lastbalanseraren: instansen förblir nåbar på sin externa adress, även om portalen inte längre visar den. Låt extern åtkomst vara avslagen tills du behöver den, och begränsa den med Tillåtna CIDR-block när du slår på den.

Andra inloggningar än sa

Plattformen lämnar bara ut inloggningen sa. För att ge ett program en inloggning med färre rättigheter skapar du inloggningen och dess databasanvändare med en SQL Server-klient som är ansluten som sa, och lägger den inloggningens anslutningssträng i valvet i stället. Datautforskaren kör inte satserna CREATE LOGIN eller CREATE USER — se Vad som körs.