Hoppa till innehållet
Stackship-dokumentation English

SQL ServerAnvändareMaskinöversatt

Datautforskaren

Bläddra i och redigera raderna i en SQL Server-tabell i portalen, kör T-SQL med en provkörning först, och vilka satser Datautforskaren kör och vilken behörighet var och en kräver.

Kräver: sqlservercluster/dataRead, sqlservercluster/dataWrite, sqlservercluster/schemaRead, sqlservercluster/queryExecute, sqlservercluster/queryExecuteWrite

Fliken Datautforskare på instanssidan arbetar mot instansens initiala databas. Den öppnas för alla som har sqlservercluster/dataRead på instansen; varje sak du gör i den kräver sedan sin egen behörighet, som kontrolleras mot dig, inte mot serverns inloggning sa, som Datautforskaren ansluter som. Rollen Database Explorer kan bläddra i och redigera rader och köra SELECT, INSERT, UPDATE, DELETE och MERGE, men inte skapa, ändra eller ta bort objekt; Owner, Contributor, Platform Owner och Platform Contributor kan göra allt — se Behörigheter.

En stoppad instans har ingen Datautforskare: fliken visar Klustret är otillgängligt tills instansen körs igen.

Hitta en tabell

Panelen till vänster listar databasens scheman under Schemas. Fäll ut ett schema för att se dess tabeller och vyer, och en tabell för att se dess kolumner, deras typer, vilka av dem som är NOT NULL, och en nyckelikon på primärnyckeln. För att lista dem krävs sqlservercluster/schemaRead.

Bläddra i och redigera rader

Välj en tabell, så visar fliken Browse dess rader, 100 åt gången i primärnyckelordning, med Prev, Next och Refresh. För att läsa rader krävs sqlservercluster/dataRead.

En tabell vars primärnyckel är en enda kolumn kan redigeras på plats, med sqlservercluster/dataWrite:

  • ändra en cells värde;
  • Row lägger till en ny rad att fylla i;
  • Mark for delete markerar en rad för borttagning.

Ändringarna väntar tills du väljer Submit — som anger hur många de är — eller Discard all. En tabell med en primärnyckel över flera kolumner, eller ingen alls, kan bara läsas här; ändra dess rader med en sats på fliken Query.

Kör satser

Fliken Query har en redigerare för en T-SQL-batch och två knappar:

  • Dry run kör batchen i en transaktion och rullar tillbaka den, så att du ser vad den skulle göra — rader som returneras, rader som påverkas, fel — utan att något ändras.
  • Run kör batchen och bekräftar den.

Hela batchen körs som en transaktion: om en sats misslyckas behålls inget i batchen. Innan något körs klassificeras varje sats och kontrolleras mot dina behörigheter; resultatet listar varje sats klass och, när du saknar en behörighet, den som saknas under Missing, som du sedan kan be om som tillfällig åtkomst — se Begär åtkomst.

En batch som kör längre än 30 sekunder stoppas, och dess resultat stannar vid 5 000 rader totalt, markerat som avkortat.

Se upp

Varje batch som skickas här sparas med hela sin text, även de som nekats. Alla med sqlservercluster/read på instansen — rollerna Reader och Databases Reader inräknade — kan lista de senaste via API:t. Lägg inte lösenord eller andra hemligheter i en sats.

Schemaändringar kräver en provkörning

En batch som skapar, ändrar eller tar bort objekt — TRUNCATE TABLE inräknat — bekräftas bara efter en felfri provkörning av exakt samma batch:

  1. Välj Dry run.
  2. När provkörningen lyckas visas Commit DDL changes. Välj den inom två minuter.

En ändrad batch, en provkörning som är äldre än två minuter eller en provkörning av någon annan räknas inte: bekräftelsen nekas och du gör en ny provkörning.

Vad som körs

Sats Kräver
SELECT, SELECT … INTO inräknat sqlservercluster/queryExecute
INSERT, UPDATE, DELETE, MERGE sqlservercluster/queryExecuteWrite
CREATE av en tabell, ett index, en vy, en procedur, en funktion, ett schema, en utlösare eller en typ; ALTER av en tabell, vy, procedur, funktion, ett schema eller en utlösare sqlservercluster/schemaWrite
DROP av något av dem, TRUNCATE TABLE sqlservercluster/schemaWrite och sqlservercluster/schemaDrop

Alla andra satser nekas, oavsett dina behörigheter, och hela batchen med dem:

  • transaktionsstyrning — BEGIN, COMMIT, ROLLBACK och SAVE TRANSACTION — eftersom Datautforskaren äger transaktionen;
  • EXEC och sp_executesql, som skulle kunna köra satser som kontrollen aldrig såg;
  • allt annat, till exempel USE, DECLARE, SET, GRANT, CREATE LOGIN, CREATE USER eller BACKUP;
  • en batch som inte går att tolka.

För sådant ansluter du med en SQL Server-klient i stället — se Anslut till en instans.

Viktigt

Kontrollen tittar på satserna du skickar, inte på vad de gör när de körs, och allt körs som sa. SELECT … INTO skapar en tabell med enbart sqlservercluster/queryExecute. Kroppen i en procedur, funktion eller utlösare kontrolleras inte sats för sats när den skapas, så den kan innehålla satser som Datautforskaren nekar var för sig — och en utlösare kör dem som sa när en radändring som görs via Datautforskaren utlöser den.

Med CLI:t

bash
stsh sqlserver schemas my-sql -g my-resource-group
stsh sqlserver rows my-sql -g my-resource-group dbo orders
stsh sqlserver query my-sql -g my-resource-group "SELECT COUNT(*) FROM dbo.orders"
stsh sqlserver query my-sql -g my-resource-group "DELETE FROM dbo.orders WHERE id = 42" --dry-run

stsh sqlserver rows visar de första 100 raderna. stsh sqlserver query gör först en provkörning och bekräftar bara om den lyckas, så schemaändringar fungerar också från CLI:t; med --dry-run stannar det efter provkörningen.