Lokal granskning för SQL Server-användning och insamling av diagnostikdata (CEIP)

Gäller för:SQL Server i Windows Azure SQL Managed Instance

Introduction

Microsoft SQL Server innehåller Internetaktiverade funktioner som kan samla in och skicka information om din dator eller enhet. Detta kallas standarddatorinformation. Den lokala granskningskomponenten i SQL Server Usage and Diagnostic Data-samlingen skriver data som samlas in av tjänsten till en angiven mapp som representerar de data (loggar) som ska skickas till Microsoft. Syftet med den lokala granskningen är att göra det möjligt för kunder att se alla data som Microsoft samlar in med den här funktionen av efterlevnads-, regel- eller sekretessverifieringsskäl.

För SQL Server 2016 CU2 och CU3 kan lokal granskning konfigureras på instansnivå för SQL Server Database Engine och Analysis Services (SSAS). För SQL Server 2016 CU4, 2016 SP1 och senare versioner aktiveras även lokal granskning för SQL Server Integration Services (SSIS). Andra SQL Server-komponenter som installeras under installationen och SQL Server-verktyg som laddas ned eller installeras efter installationen har inte lokal granskningskapacitet för användning och insamling av diagnostikdata.

Anmärkningar

  • Det går inte att ta bort eller inaktivera SQL CEIP-tjänsten.
  • Det går inte att ta bort SQL CEIP-resurserna från klustergruppen.

Det går inte att välja bort SQL Server-användning och insamling av diagnostikdata, men tjänsten kan inte tas bort eller inaktiveras. Att välja bort datainsamling, se "Aktivera eller inaktivera lokal granskning"

Förutsättningar

Följande är krav för att aktivera lokal granskning på varje SQL Server-instans:

  1. Instansen är uppdaterad med SQL Server 2016 RTM CU2 eller senare. För Integration Services korrigeras instansen till SQL 2016 RTM CU4, SQL 2016 SP1 eller senare.

  2. Användaren måste vara systemadministratör eller roll med åtkomst för att lägga till och ändra registernyckel, skapa mappar, hantera mappsäkerhet och stoppa/starta en Windows-tjänst.

Förkonfigurationssteg innan du aktiverar lokal granskning

Innan du aktiverar lokal granskning måste en systemadministratör:

  1. Känna till SQL Server-instansnamnet och INLOGGNINGskontot för SQL Server CEIP-tjänsten.

  2. Konfigurera en ny mapp för de lokala granskningsfilerna.

  3. Bevilja behörigheter till inloggningskontot för SQL Server CEIP-tjänsten.

  4. Skapa en registernyckelinställning för att konfigurera den lokala målkatalogen för granskning.

Hämta inloggningskontot för SQL Server CEIP-tjänsten

Utför följande steg för att hämta inloggningskontot för SQL Server CEIP-tjänsten

  1. Starta tjänstekonsolen . Det gör du genom att välja Windows-tangenten + R på tangentbordet för att öppna dialogrutan Kör . Skriv sedan services.msc i textfältet och välj OK för att starta tjänstekonsolen.

  2. Navigera till lämplig tjänst. För databasmotorn hittar du till exempel SQL Server CEIP-tjänsten(Your-Instance-Name). För Analysis Services letar du upp SQL Server Analysis Services CEIP(Your-Instance-Name). För Integration Services letar du upp tjänsten CEIP för SQL Server Integration Services.

  3. Högerklicka på tjänsten och välj Egenskaper.

  4. Välj fliken Logga in . Inloggningskontot finns i listan i Det här kontot.

Konfigurera en ny mapp för de lokala granskningsfilerna.

Skapa en ny mapp (lokal granskningskatalog) där den lokala granskningen skriver loggarna. Den fullständiga sökvägen till den lokala granskningskatalogen för en standardinstans av databasmotorn skulle till exempel vara: C:\SQLCEIPAudit\MSSQLSERVER\DB\.

Anmärkning

Konfigurera katalogsökvägen för lokal granskning utanför SQL Server-installationssökvägen för att undvika att tillåta granskningsfunktioner och korrigeringar för att orsaka potentiella problem med SQL Server.

Designbeslut Recommendation
Utrymmestillgänglighet Vid måttlig arbetsbelastning med cirka 10 databaser planerar du cirka 2 MB diskutrymme per databas per instans.
Separata kataloger Skapa en katalog för varje instans. Använd till exempel C:\SQLCEIPAudit\MSSQLSERVER\DB\ för en SQL Server-instans med namnet MSSQLSERVER. Detta förenklar filhantering.
Separata mappar Använd en specifik mapp för varje tjänst. För ett angivet instansnamn kan du till exempel ha en mapp för databasmotorn. Om en instans av Analysis Services använder samma instansnamn skapar du en separat mapp för Analysis Services. Om både Database Engine- och Analysis Services-instanser har konfigurerats till samma mapp kommer all lokal granskning att skriva till samma loggfil från båda instanserna.
Bevilja behörigheter till INLOGGNINGskontot för SQL Server CEIP-tjänsten Aktivera listmappinnehåll, läs- och skrivåtkomst till SQL Server CEIP-tjänstens inloggningskonto

Bevilja behörigheter till INLOGGNINGskontot för SQL Server CEIP-tjänsten

  1. I Utforskaren navigerar du till den plats där den nya mappen finns.

  2. Högerklicka på den nya mappen och välj Egenskaper.

  3. fliken Säkerhet väljer du Redigera hantera behörighet.

  4. Välj Lägg till och skriv autentiseringsuppgifterna för SQL Server CEIP-tjänsten. Till exempel NT Service\SQLTELEMETRY.

  5. Välj Kontrollera namn för att verifiera namnet du angav och välj sedan OK.

  6. I dialogrutan Behörighet väljer du Inloggningskonto till SQL Server CEIP-tjänsten och väljer Lista mappinnehåll, Läs och Skriv.

  7. Välj OK för att tillämpa behörighetsändringarna omedelbart.

Skapa en registernyckelinställning för att konfigurera den lokala granskningsmålkatalogen

  1. Starta regedit.

  2. Navigera till rätt CPE-sökväg:

    Utgåva Databasmotor – registernyckel
    2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13. Your-Instance-Name\CPE
    2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14. Your-Instance-Name\CPE
    2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15. Your-Instance-Name\CPE
    Utgåva Analysis Services – registernyckel
    2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13. Your-Instance-Name\CPE
    2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14. Your-Instance-Name\CPE
    2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS15. Your-Instance-Name\CPE
    Utgåva Integration Services – registernyckel
    2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130
    2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140
    2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\150
  3. Högerklicka på CPE-sökvägen och välj Ny. Välj Strängvärde.

  4. Ge den nya registernyckeln UserRequestedLocalAuditDirectorynamnet .

Aktivera eller inaktivera lokal granskning

När du har slutfört förkonfigurationsstegen kan du aktivera lokal granskning. Det gör du genom att använda ett systemadministratörskonto eller en liknande roll med åtkomst till att ändra registernycklar för att aktivera eller inaktivera lokal granskning genom att följa stegen nedan.

  1. Starta regedit.

  2. Gå till lämplig CPE-sökväg.

  3. Högerklicka på UserRequestedLocalAuditDirectory och välj Ändra.

  4. Om du vill aktivera lokal granskning skriver du den lokala granskningssökvägen, till exempel C:\SQLCEIPAudit\MSSQLSERVER\DB\.

    Om du vill inaktivera lokal granskning tömmer du värdet i UserRequestedLocalAuditDirectory.

  5. Stäng regedit.

SQL Server CEIP bör identifiera den lokala granskningsinställningen omedelbart om tjänsten redan körs. Om du vill starta SQL Server CEIP-tjänsten kan en systemadministratör eller någon som har åtkomst till att starta eller stoppa Windows-tjänster följa stegen nedan:

  1. Starta tjänstekonsolen . Det gör du genom att välja Windows-tangenten + R på tangentbordet för att öppna dialogrutan Kör . Skriv sedan services.msc i textfältet och välj OK för att starta tjänstekonsolen.

  2. Navigera till lämplig tjänst.

    • För Databasmotor använder du SQL Server CEIP-tjänsten (Your-Instance-Name).
    • För Analysis Services använder du SQL Server Analysis Services CEIP (Your-Instance-Name).
    • För Integration Services,
      • För SQL 2016 använder du SQL Server Integration Services CEIP-tjänsten 13.0.
      • För SQL 2017 använder du SQL Server Integration Services CEIP-tjänsten 14.0.
    • För SQL 2019 använder du SQL Server Integration Services CEIP-tjänsten 15.0.
  3. Högerklicka på tjänsten och välj Starta om.

  4. Kontrollera att tjänstens status är Kör.

Lokal granskning skapar en loggfil per dag. Loggfilerna kommer att vara i en form av <YYYY-MM-DD>.json. Till exempel 2016-07-12.json. Om det finns en befintlig fil för dagen i den avsedda katalogen, kommer lokal revision att läggas till i den. Annars skapas en ny fil för dagen.

Anmärkning

När du har aktiverat lokal granskning kan det ta upp till 5 minuter innan loggfilen skrivs för första gången.

Maintenance

  1. Om du vill begränsa diskutrymmets användning av filerna som skrivits av lokal granskning konfigurerar du en princip eller ett vanligt jobb för att rensa den lokala granskningskatalogen för att ta bort äldre filer som inte behövs.

  2. Skydda sökvägen för den lokala granskningskatalogen så att den endast är tillgänglig för lämpliga personer. Observera att loggfilerna innehåller information som beskrivs i Så här konfigurerar du SQL Server 2016 för att skicka feedback till Microsoft. Åtkomst till den här filen bör hindra de flesta medlemmar i din organisation från att läsa den.

Dataordlista för lokal granskningsdatastruktur

  • Lokala granskningsloggfiler finns i JSON, som innehåller en uppsättning objekt (rader) som representerar datapunkter som skickas tillbaka till Microsoft vid emitTime.
  • Varje rad följer ett specifikt schema som identifieras av schemaVersion.
  • Varje rad är utdata från en SQLCEIP-tjänstsession som identifieras som sessionID.
  • Rader genereras i ordning och identifieras av sekvens.
  • Varje datapunktsrad innehåller utdata från en queryIdentifier, som kan vara en T-SQL-fråga, en XE-session eller ett meddelande som är relaterat till en typ av spårning, identifierad som traceName.
  • queryIdentifiers grupperas och versionshanteras tillsammans med querySetVersion.
  • data innehåller utdata från motsvarande frågekörning, som tog queryTimeInTicks.
  • queryIdentifiers för T-SQL-frågor har T-SQL-frågedefinitionen lagrad i frågan.
Hierarki för logisk lokal granskningsinformation Relaterade kolumner
Header emitTime, schemaVersion
Maskin operativsystem
Exempel instanceUniqueID, correlationID, clientVersion
Session sessionID, traceName
Query sekvens, frågesetVersion, frågeidentifierare, fråga, frågetidIMärken
Uppgifter data

Definition och exempel för namn/värdepar

Kolumnerna nedan representerar ordningen för utdata från den lokala granskningsfilen. Enkelriktad hash med SHA 256 används för att anonymisera värden för ett antal av kolumnerna nedan.

Namn Description Exempelvärden
instanceUniqueID Anonymiserad instansidentifierare 888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD
schemaVersion Schemaversion av SQLCEIP 3
emitTid Datapunktsemitteringstid i UTC 2016-09-08T17:20:22.1124269Z
sessionId Sessionsidentifierare för tjänsten SQLCEIP-tjänsten 89decf9a-ad11-485c-94a7-fefb3a02ed86
correlationId Platshållare för ytterligare en identifierare 0
sekvens Sekvensnummer för de datapunkter som skickas inom sessionen 15
klientversion SQL Server-instansversion 13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223)
operativsystem Operativsystemets version där SQL Server-instansen är installerad Microsoft Windows Server 2012 R2 Datacenter
Versionsuppsättning för frågor Version av en grupp med frågedefinitioner 1.0.0.0
traceName Kategorier av spårningar: (SQLServerXeQueries, SQLServerPeriodicQueries, SQLServerOneSettingsException) SQLServerPeriodicQueries
queryIdentifier En identifierare för frågan SQLServerProperties.002
data Utdata från den information som samlas in med queryIdentifier som utdata från en T-SQL-fråga, XE-session eller en applikation. [{"Collation": "SQL_Latin1_General_CP1_CI_AS","SqlFTinstalled": "0","SqlIntSec": "1","IsSingleUser": "0","SqlFilestreamMode": "0","SqlPbInstalled": "0","SqlPbNodeRole": "","SqlVersionMajor": "13","SqlVersionMinor": "0","SqlVersionBuild": "2161","ProductBuildType": "","ProductLevel": "RTM","ProductUpdateLevel": "CU2","ProductUpdateReference": "KB3182270","ProductRevision": "3","SQLEditionId": "-1534726760","IsClustered": "0","IsHadrEnabled": "0","SqlAdvAInstalled": "0","PacketReceived": "1210","Version": "Microsoft SQL Server 2016 (RTM-CU2) (KB3182270) - 13.0.2161.3 (X64) \n\tSep 7 2016 14:24:16 \n\tCopyright (c) Microsoft Corporation\n\tStandard Edition (64-bit) på Windows Server 2012 R2 Datacenter 6.3 \u003cX64\u003e (Version 9600: ) (Hypervisor)\n"}]
query Om tillämpligt, är T-SQL-frågedefinitionen relaterad till frågeIdentifiern som genererar data. Den här komponenten laddas inte upp av SQL Server CEIP-tjänsten. Den ingår endast i lokal granskning som en referens till kunder. SELECT\n SERVERPROPERTY(\u0027Collation\u0027) AS [Collation],\n SERVERPROPERTY(\u0027IsFullTextInstalled\u0027) AS [SqlFTinstalled],\n SERVERPROPERTY(\u0027IsIntegratedSecurityOnly\u0027) AS [SqlIntSec],\n SERVERPROPERTY(\u0027IsSingleUser\u0027) AS [IsSingleUser],\n SERVERPROPERTY (\u0027FileStreamEffectiveLevel\u0027) AS [SqlFilestreamMode],\n SERVERPROPERTY(\u0027IsPolyBaseInstalled\u0027) AS [SqlPbInstalled],\n SERVERPROPERTY(\u0027PolyBaseRole\u0027) AS [SqlPbNodeRole],\n SERVERPROPERTY(\u0027ProductMajorVersion\u0027) AS [SqlVersionMajor],\n SERVERPROPERTY(\u0027ProductMinorVersion\u0027) AS [SqlVersionMinor],\n SERVERPROPERTY(\u0027ProductBuild\u0027) AS [SqlVersionBuild],\n SERVERPROPERTY(\u0027ProductBuildType\u0027) AS ProductBuildType,\n SERVERPROPERTY(\u0027ProductLevel\u0027) AS ProductLevel,\n SERVERPROPERTY(\u0027ProductUpdateLevel\u0027) AS ProductUpdateLevel,\n SERVERPROPERTY(\u0027ProductUpdateReference\u0027) AS ProductUpdateReference,\n RIGHT(CAST(SERVERPROPERTY(\u0027ProductVersion\u0027) AS NVARCHAR(30)),CHARINDEX(\u0027.\u0027, REVERSE(CAST(SERVERPROPERTY(\u0027ProductVersion\u0027) AS NVARCHAR(30)))) - 1) AS ProductRevision,\n SERVERPROPERTY(\u0027EditionID\u0027) SOM SQLEditionId,\n SERVERPROPERTY(\u0027IsClustered\u0027) AS IsClustered,\n SERVERPROPERTY(\u0027IsHadrEnabled\u0027) AS IsHadrEnabled,\n SERVERPROPERTY(\u0027IsAdvancedAnalyticsInstalled\u0027) AS [SqlAdvAInstalled], \n @@PACK_RECEIVED AS PacketReceived,\n @@VERSION AS-version
queryTimeInTicks Hur lång tid det tar för frågan med följande spårningskategori att köras: (SQLServerXeQueries, SQLServerPeriodicQueries) 0

Spårningskategorier

För närvarande samlar vi in följande spårningskategorier:

  • SQLServerXeQueries: innehåller datapunkter som samlats in via extended event-sessionen.
  • SQLServerPeriodicQueries: innehåller datapunkter som samlas in via periodiska frågor som körs i en SQL Server-instans.
  • SQLServerPerDBPeriodicQueries: innehåller datapunkter som samlats in via periodiska frågor som körs till upp till 30 databaser i en SQL Server-instans.
  • SQLServerOneSettingsException: innehåller undantagsmeddelanden som rör uppdatering av schema och/eller frågeuppsättning.
  • DigitalProductID: innehåller datapunkter för aggregering av anonymiserade (SHA-256) hashade digitala produkt-ID för SQL Server-instanser.

Exempel på lokal granskningsfil

Nedan visas ett utdrag av JSON-filutdata från lokal granskning.

[
  {
    "instanceUniqueId": "888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD",
    "isSSEIInstance": "0",
    "schemaVersion": "5",
    "emitTime": "2018-05-04T15:27:59.7031518Z",
    "sessionId": "c3cd1b56-ab61-462f-8363-8881779aa223",
    "correlationId": 0,
    "sequence": 18,
    "clientVersion": "14.0.3025.34 ((SQLServer2017-CU6).180410-0033)",
    "isInternalMachine": "1",
    "operatingSystem": "Microsoft Windows 10 Enterprise",
    "querySetVersion": "14.0.3025.34",
    "traceName": "SQLServerPeriodicQueries",
    "queryIdentifier": "SQLServerProperties.002",
    "data": [
      {
        "Collation": "SQL_Latin1_General_CP1_CI_AS",
        "SqlFTinstalled": "0",
        "SqlIntSec": "1",
        "IsSingleUser": "0",
        "SqlFilestreamMode": "2",
        "SqlPbInstalled": "1",
        "SqlPbNodeRole": "Head",
        "SqlVersionMajor": "14",
        "SqlVersionMinor": "0",
        "SqlVersionBuild": "3025",
        "ProductBuildType": "",
        "ProductLevel": "RTM",
        "ProductUpdateLevel": "CU6",
        "ProductUpdateReference": "KB4101464",
        "ProductRevision": "34",
        "SQLEditionId": "1872460670",
        "IsClustered": "0",
        "IsHadrEnabled": "0",
        "SqlAdvAInstalled": "1",
        "PacketReceived": "422",
        "Version": "Microsoft SQL Server 2017 (RTM-CU6) (KB4101464) - 14.0.3025.34 (X64) \n\tApr  9 2018 18:00:41 \n\tCopyright (C) 2017 Microsoft Corporation\n\tEnterprise Edition: Core-based Licensing (64-bit) on Windows 10 Enterprise 10.0 <X64> (Build 16299: )\n"
      }
    ],
    "query": "SELECT\n      SERVERPROPERTY('Collation') AS [Collation],\n      SERVERPROPERTY('IsFullTextInstalled') AS [SqlFTinstalled],\n      SERVERPROPERTY('IsIntegratedSecurityOnly') AS [SqlIntSec],\n      SERVERPROPERTY('IsSingleUser') AS [IsSingleUser],\n      SERVERPROPERTY ('FileStreamEffectiveLevel') AS [SqlFilestreamMode],\n      SERVERPROPERTY('IsPolyBaseInstalled') AS [SqlPbInstalled],\n      SERVERPROPERTY('PolyBaseRole') AS [SqlPbNodeRole],\n      SERVERPROPERTY('ProductMajorVersion') AS [SqlVersionMajor],\n      SERVERPROPERTY('ProductMinorVersion') AS [SqlVersionMinor],\n      SERVERPROPERTY('ProductBuild') AS [SqlVersionBuild],\n      SERVERPROPERTY('ProductBuildType') AS ProductBuildType,\n      SERVERPROPERTY('ProductLevel') AS ProductLevel,\n      SERVERPROPERTY('ProductUpdateLevel') AS ProductUpdateLevel,\n      SERVERPROPERTY('ProductUpdateReference') AS ProductUpdateReference,\n      RIGHT(CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(30)),CHARINDEX('.', REVERSE(CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(30)))) - 1) AS ProductRevision,\n      SERVERPROPERTY('EditionID') AS SQLEditionId,\n      SERVERPROPERTY('IsClustered') AS IsClustered,\n      SERVERPROPERTY('IsHadrEnabled') AS IsHadrEnabled,\n      SERVERPROPERTY('IsAdvancedAnalyticsInstalled') AS [SqlAdvAInstalled],\n      @@PACK_RECEIVED AS PacketReceived,\n      @@VERSION AS Version",
    "queryTimeInTicks": 0
  },
  {
    "instanceUniqueId": "8884F770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD",
    "isSSEIInstance": "0",
    "schemaVersion": "5",
    "emitTime": "2018-05-04T15:28:00.9025999Z",
    "sessionId": "c3cd1b56-ab61-462f-8363-8881779aa223",
    "correlationId": 0,
    "sequence": 23,
    "clientVersion": "14.0.3025.34 ((SQLServer2017-CU6).180410-0033)",
    "isInternalMachine": "1",
    "operatingSystem": "Microsoft Windows 10 Enterprise",
    "querySetVersion": "14.0.3025.34",
    "traceName": "SQLServerPeriodicQueries",
    "queryIdentifier": "OsSysInfo.003",
    "data": [
      {
        "LogicalCPUCount": "8",
        "HyperthreadRatio": "8",
        "PhysicalMemoryMB": "32710.902343",
        "SQLServerStartTime": "05/04/2018 08:22:30",
        "AffinityTypeDesc": "AUTO",
        "VirtualMachineType": "0",
        "SocketCount": "1",
        "CoresPerSocket": "4",
        "NumaNodeCount": "1",
        "ContainerType": "0",
        "ContainerDescription": "NONE"
      }
    ],
    "query": "SELECT\n      cpu_count AS LogicalCPUCount,\n      hyperthread_ratio AS HyperthreadRatio,\n      physical_memory_kb/1024.0 AS PhysicalMemoryMB,\n      sqlserver_start_time AS SQLServerStartTime,\n      affinity_type_desc AS AffinityTypeDesc,\n      virtual_machine_type AS VirtualMachineType,\n      socket_count as SocketCount,\n      cores_per_socket as CoresPerSocket,\n      numa_node_count as NumaNodeCount,\n      container_type as ContainerType,\n      container_type_desc as ContainerDescription\n      FROM sys.dm_os_sys_info WITH(nolock)",
    "queryTimeInTicks": 0
  }
]

Vanliga frågor

Hur läser databasadministratörer de lokala granskningsloggfilerna? Loggfilerna är skrivna i JSON-format. Varje rad är ett JSON-objekt som representerar en del av användning/diagnostikdata som laddats upp till Microsoft. Fältnamnen ska vara självförklarande.

Vad händer om DBA inaktiverar insamling av användnings- och diagnostikdata? Ingen lokal granskningsfil skrivs.

Vad händer om det inte finns någon Internetanslutning/dator bakom brandväggen? SQL Server-användning och diagnostikdata skickas inte till Microsoft. Den försöker fortfarande skriva de lokala granskningsloggarna om de är korrekt konfigurerade.

Hur inaktiverar databasadministratörer lokal granskning? Ta bort registernyckelposten UserRequestedLocalAuditDirectory.

Vem kan läsa de lokala granskningsloggfilerna? Alla i din organisation som har åtkomst till den lokala granskningskatalogen.

Hur hanterar dbas loggfilerna som skrivits till den avsedda katalogen? DBA måste själv hantera rensningen av filerna i katalogen för att undvika att förbruka för mycket diskutrymme.

Finns det en klient eller ett verktyg som jag kan använda för att läsa dessa JSON-utdata? Utdata kan läsas med Anteckningar, Visual Studio eller valfri JSON-läsare. Du kan också läsa JSON-filen och analysera data i en SQL Server-instans enligt nedan. Mer information om hur du läser JSON-filen i SQL Server finns i Importera JSON-filer till SQL Server med OPENROWSET (BULK) och OPENJSON (Transact-SQL).

DECLARE @JSONFile AS VARCHAR(MAX)

-- Read the JSON file into variable 
SELECT @JSONFile = BulkColumn 
FROM OPENROWSET (BULK 'C:\SQLCEIPAudit\MSSQLSERVER\2016-09-08.json', SINGLE_CLOB) MyFile 

-- Check if the JSON file has been read properly and if it's in a JSON format
SELECT 
	@JSONFile LocalAuditOutput, 
	ISJSON(@JSONFile) IsFileInJSONFormat

-- Get the query identifier, query and the data (output of the query)	
SELECT 
	sequence,
	queryIdentifier,
	query,
	data
FROM OPENJSON(@JSONFile) 
	WITH (sessionId VARCHAR(64)
		 ,sequence INT
		 ,queryIdentifier VARCHAR(128)
		 ,query VARCHAR(MAX)
		 ,data NVARCHAR(MAX) AS JSON)
-- Get specific details about the output of "DatabaseProperties.001" query	
SELECT 
	QueryIdentifier,
	DatabaseID,
	CompatibilityLevel,
	IsQueryStoreOn
FROM OPENJSON(@JSONFile) 
	WITH (sessionId VARCHAR(64)
		 ,sequence INT
		 ,queryIdentifier VARCHAR(128)
		 ,query VARCHAR(MAX)
		 ,data NVARCHAR(MAX) AS JSON) 
	CROSS APPLY OPENJSON(data) 
		WITH (	 DatabaseID varchar(128) '$.database_id'
				,CompatibilityLevel varchar(128) '$.compatibility_level'
				,IsQueryStoreOn varchar(128) '$.QS'
			 )
WHERE queryIdentifier = 'DatabaseProperties.001'

Se även

Lokal granskning för SSMS-användning och insamling av diagnostikdata