Share via


Lokale controle voor het verzamelen van SQL Server-gebruiks- en diagnostische gegevens (CEIP)

Van toepassing op:SQL Server in Windows Azure SQL Managed Instance

Introductie

Microsoft SQL Server bevat internetfuncties waarmee informatie over uw computer of apparaat kan worden verzameld en verzonden. Dit wordt standaardcomputergegevens genoemd. Het lokale controleonderdeel van het verzamelen van SQL Server-gebruiks- en diagnostische gegevens schrijft gegevens die door de service zijn verzameld naar een aangewezen map, die de gegevens (logboeken) vertegenwoordigt die naar Microsoft worden verzonden. Het doel van de lokale audit is om klanten toe te staan alle gegevens te zien die Microsoft met deze functie verzamelt, om redenen van naleving, regelgeving of privacyvalidatie.

Voor SQL Server 2016 CU2 en CU3 kan lokale controle worden geconfigureerd op exemplaarniveau voor SQL Server Database Engine en Analysis Services (SSAS). Voor SQL Server 2016 CU4, 2016 SP1 en latere releases is lokale controle ook ingeschakeld voor SSIS (SQL Server Integration Services). Andere SQL Server-onderdelen die worden geïnstalleerd tijdens setup en SQL Server-hulpprogramma's die worden gedownload of geïnstalleerd nadat Setup geen lokale controlemogelijkheid heeft voor het verzamelen van gebruiks- en diagnostische gegevens.

Opmerkingen

  • Het verwijderen of uitschakelen van de SQL CEIP-service wordt niet ondersteund.
  • Het verwijderen van de SQL CEIP-resources uit de clustergroep wordt niet ondersteund.

Het verwijderen van sql Server-gebruik en het verzamelen van diagnostische gegevens wordt ondersteund, maar de service kan niet worden verwijderd of uitgeschakeld. Zie Lokale controle in- of uitschakelen als u zich wilt afmelden voor het verzamelen van gegevens

Vereiste voorwaarden

Hier volgen de vereisten voor het inschakelen van lokale controle op elk SQL Server-exemplaar:

  1. Het exemplaar is gepatcht naar SQL Server 2016 RTM CU2 of hoger. Voor Integration Services wordt het exemplaar gepatcht naar SQL 2016 RTM CU4, SQL 2016 SP1 of hoger.

  2. Gebruiker moet een systeembeheerder of een rol met toegang tot het toevoegen en wijzigen van registersleutel, mappen maken, mapbeveiliging beheren en een Windows-service stoppen/starten.

Stappen voorafgaand aan het inschakelen van lokale controle vooraf configureren

Voordat u lokale controle inschakelt, moet een systeembeheerder het volgende doen:

  1. Ken de naam van het SQL Server-exemplaar en het aanmeldingsaccount van de SQL Server CEIP-service.

  2. Configureer een nieuwe map voor de lokale auditbestanden.

  3. Verdeel machtigingen aan het aanmeldingsaccount van de SQL Server CEIP-service.

  4. Maak een registersleutelinstelling om de doelmap voor lokale audit te configureren.

Het aanmeldingsaccount van de SQL Server CEIP-service ophalen

Volg de volgende stappen om het aanmeldingsaccount van de SQL Server CEIP-service op te halen

  1. Start de Services-console. Selecteer hiervoor de Windows-toets + R op het toetsenbord om het dialoogvenster Uitvoeren te openen. Typ vervolgens services.msc in het tekstveld en selecteer OK om de Services-console te starten.

  2. Navigeer naar de juiste service. Voor de database-engine zoekt u bijvoorbeeld de SQL Server CEIP-service(Uw-Exemplaarnaam). Zoek voor Analysis Services SQL Server Analysis Services CEIP(uw-exemplaarnaam). Voor Integration Services zoekt u de CEIP-service van SQL Server Integration Services.

  3. Klik met de rechtermuisknop op de service en kies Eigenschappen.

  4. Selecteer het tabblad Aanmelden . Het aanmeldingsaccount wordt vermeld in dit account.

Configureer een nieuwe map voor de lokale auditbestanden.

Maak een nieuwe map (lokale auditmap) waarin de lokale audit de logboeken schrijft. Het volledige pad naar de lokale auditmap voor een standaardexemplaar van de database-engine is bijvoorbeeld: C:\SQLCEIPAudit\MSSQLSERVER\DB\.

Opmerking

Configureer het mappad voor lokale controle buiten het installatiepad van SQL Server om te voorkomen dat controlefunctionaliteit en patching potentiële problemen met SQL Server veroorzaken.

Ontwerpbeslissing Aanbeveling
Beschikbaarheid van ruimte Bij een gemiddelde werklast voor ongeveer 10 databases moet u rekenen op ongeveer 2 MB schijfruimte per database per instantie.
Afzonderlijke mappen Maak een map voor elke instantie. Gebruik bijvoorbeeld C:\SQLCEIPAudit\MSSQLSERVER\DB\ voor een SQL Server-exemplaar met de naam MSSQLSERVER. Dit vereenvoudigt bestandsbeheer.
Afzonderlijke mappen Gebruik een specifieke map voor elke service. Voor een bepaalde instantienaam hebt u bijvoorbeeld één map voor de database-engine. Als een exemplaar van Analysis Services dezelfde exemplaarnaam gebruikt, maakt u een afzonderlijke map voor Analysis Services. Als zowel database-engine- als Analysis Services-exemplaren zijn geconfigureerd voor dezelfde map, zorgt u ervoor dat alle lokale audit vanuit beide exemplaren naar hetzelfde logboekbestand schrijft.
Machtigingen verlenen aan het aanmeldingsaccount van de SQL Server CEIP-service Inhoud van de lijstmap inschakelen, lees- en schrijftoegang tot het aanmeldingsaccount van de SQL Server CEIP-service

Machtigingen verlenen aan het aanmeldingsaccount van de SQL Server CEIP-service

  1. Navigeer in Verkenner naar de locatie van de nieuwe map.

  2. Klik met de rechtermuisknop op de nieuwe map en kies Eigenschappen.

  3. Selecteer Op het tabblad Beveiliging de optie Machtiging beheren bewerken .

  4. Selecteer Toevoegen en typ de referenties van de SQL Server CEIP-service. Bijvoorbeeld NT Service\SQLTELEMETRY.

  5. Selecteer Namen controleren om de opgegeven naam te valideren en selecteer VERVOLGENS OK.

  6. Kies in het dialoogvenster Machtiging het aanmeldingsaccount voor de SQL Server CEIP-service en selecteer de inhoud van de lijstmap, Lezen en Schrijven.

  7. Selecteer OK om de machtigingswijzigingen onmiddellijk toe te passen.

Een registersleutelinstelling maken om de doelmap voor lokale audit te configureren

  1. Start regedit.

  2. Navigeer naar het juiste CPE-pad:

    Versie Database engine - Registersleutel
    2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.Naam van uw exemplaar\CPE
    2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.Uw-Instance-Naam\CPE
    2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.Naam van uw exemplaar\CPE
    Versie Analysis Services - Registersleutel
    2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13.Naam van uw exemplaar\CPE
    2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.Naam van uw exemplaar\CPE
    2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS15. Naam van uw exemplaar\CPE
    Versie Integration Services - Registersleutel
    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. Klik met de rechtermuisknop op het CPE-pad en kies Nieuw. Selecteer tekenreekswaarde.

  4. Geef de nieuwe registersleutel UserRequestedLocalAuditDirectoryeen naam.

Lokale controle in- of uitschakelen

Nadat u de vooraf geconfigureerde stappen hebt voltooid, kunt u lokale controle inschakelen. Gebruik hiervoor een systeembeheerdersaccount of een vergelijkbare rol met toegang tot het wijzigen van registersleutels om lokale audit in of uit te schakelen door de onderstaande stappen te volgen.

  1. Start regedit.

  2. Navigeer naar het juiste CPE-pad.

  3. Klik met de rechtermuisknop op UserRequestedLocalAuditDirectory en selecteer Wijzigen.

  4. Als u lokale controle wilt inschakelen, typt u het lokale auditpad, bijvoorbeeld C:\SQLCEIPAudit\MSSQLSERVER\DB\.

    Als u lokale controle wilt uitschakelen, leegt u de waarde in UserRequestedLocalAuditDirectory.

  5. Sluit regedit.

CEIP van SQL Server moet de lokale controle-instelling onmiddellijk herkennen als de service al wordt uitgevoerd. Een systeembeheerder of iemand met toegang tot het starten of stoppen van Windows Services kan de onderstaande stappen volgen om de SQL Server CEIP-service te starten.

  1. Start de Services-console. Selecteer hiervoor de Windows-toets + R op het toetsenbord om het dialoogvenster Uitvoeren te openen. Typ vervolgens services.msc in het tekstveld en selecteer OK om de Services-console te starten.

  2. Navigeer naar de juiste service.

    • Gebruik voor Database Engine de CEIP-service van SQL Server (naam van uw exemplaar).
    • Voor het gebruik van Analysis Services, gebruikt u SQL Server Analysis Services CEIP (Uw-Instance-Name).
    • Voor Integratiediensten,
      • Voor SQL 2016 gebruikt u de CEIP-service 13.0 van SQL Server Integration Services.
      • Voor SQL 2017 gebruikt u de CEIP-service 14.0 van SQL Server Integration Services.
    • Voor SQL 2019 gebruikt u de CEIP-service 15.0 van SQL Server Integration Services.
  3. Klik met de rechtermuisknop op de service en kies Opnieuw opstarten.

  4. Controleer of de status van de service Actief is.

Lokale controle produceert één logboekbestand per dag. De logboekbestanden hebben een vorm van <YYYY-MM-DD>.json. Bijvoorbeeld 2016-07-12.json. Als er een bestaand bestand voor de dag in de aangewezen map is, zal de lokale audit eraan worden toegevoegd. Anders wordt er een nieuw bestand voor de dag gemaakt.

Opmerking

Nadat lokale controle is ingeschakeld, kan het tot vijf minuten duren voordat het logboekbestand voor het eerst is geschreven.

Maintenance

  1. Als u het gebruik van schijfruimte wilt beperken door de bestanden die zijn geschreven door lokale controle, stelt u een beleid of een reguliere taak in om de lokale auditmap op te schonen om oudere, overbodige bestanden te verwijderen.

  2. Beveilig het pad van de lokale auditmap zodat het alleen toegankelijk is voor de juiste personen. De logboekbestanden bevatten informatie zoals beschreven in SQL Server 2016 configureren voor het verzenden van feedback naar Microsoft. Toegang tot dit bestand moet voorkomen dat de meeste leden van uw organisatie het lezen.

Woordenlijst van de lokale audituitvoergegevensstructuur

  • Lokale auditlogboekbestanden bevinden zich in JSON, met een set objecten (rijen) die gegevenspunten vertegenwoordigen die worden teruggestuurd naar Microsoft bij emitTime.
  • Elke rij volgt een specifiek schema dat wordt geïdentificeerd door schemaVersion.
  • Elke rij is een uitvoer van een SQLCEIP-servicesessie die wordt geïdentificeerd als sessionID.
  • Rijen worden op volgorde verzonden, geïdentificeerd door reeks.
  • Elke gegevenspuntrij bevat de uitvoer van een queryIdentifier, die een T-SQL-query, een XE-sessie of een bericht met betrekking tot een type tracering kan zijn, geïdentificeerd als traceName.
  • queryIdentifiers worden gegroepeerd en samen geversioneerd met querySetVersion.
  • gegevens bevatten de uitvoer van de bijbehorende queryuitvoering, die queryTimeInTicks heeft uitgevoerd.
  • queryIdentifiers voor T-SQL-query's hebben de T-SQL-querydefinitie opgeslagen in de query.
Logische lokale hiërarchie van auditinformatie Gerelateerde kolommen
Header emitTime, schemaVersion
Machine besturingssysteem
Instantie instanceUniqueID, correlationID, clientVersion
Session sessionID, traceName
Query reeks, querySetVersion, queryIdentifier, query, queryTimeInTicks
Gegevens gegevens

Definitie van naam-waardeparen en voorbeelden

De onderstaande kolommen vertegenwoordigen de volgorde van de uitvoer van het lokale auditbestand. Hash in één richting met SHA 256 wordt gebruikt om waarden voor een aantal onderstaande kolommen anoniem te maken.

Naam Description Voorbeeldwaarden
instanceUniqueID Geanonimiseerde exemplaar-id 888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD
Version van het schema Schemaversie van SQLCEIP 3
emitTime Gegevenspunt uitstoot-tijd in UTC 2016-09-08T17:20:22.1124269Z
sessie-id Sessie-identificatie voor de SQLCEIP-service 89decf9a-ad11-485c-94a7-fefb3a02ed86
correlationId Plaatsaanduiding voor een extra id 0
volgorde Volgnummer van de gegevenspunten die binnen de sessie zijn verzonden 15
klantversie Versie van SQL Server-exemplaar 13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223)
besturingssysteem De versie van het besturingssysteem waarop het SQL Server-exemplaar is geïnstalleerd Microsoft Windows Server 2012 R2 Datacenter
querySetVersion Versie van een groep querydefinities 1.0.0.0
traceernaam Categorieën van traceringen: (SQLServerXeQueries, SQLServerPeriodicQueries, SQLServerOneSettingsException) SQLServerPeriodicQueries
queryIdentifier Een identificator voor de query SQLServerProperties.002
gegevens De gegevens verzameld via queryIdentifier als uitvoer van een T-SQL-query, XE-sessie of de toepassing [{"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) op Windows Server 2012 R2 Datacenter 6.3 \u003cX64\u003e (Build 9600: ) (Hypervisor)\n"}]
query Indien van toepassing, is de T-SQL-querydefinitie gerelateerd aan de queryIdentifier die gegevens produceert. Dit onderdeel wordt niet geüpload door de SQL Server CEIP-service. Het is alleen opgenomen in lokale audit als referentie voor klanten. 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) AS 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 De tijdsduur die nodig is voor het uitvoeren van de query met de volgende traceringscategorie: (SQLServerXeQueries, SQLServerPeriodicQueries) 0

Traceringscategorieën

Momenteel verzamelen we de volgende traceringscategorieën:

  • SQLServerXeQueries: bevat gegevenspunten die zijn verzameld via een uitgebreide gebeurtenissessie.
  • SQLServerPeriodicQueries: bevat gegevenspunten die worden verzameld via periodieke query's die worden uitgevoerd in een SQL Server-exemplaar.
  • SQLServerPerDBPeriodicQueries: bevat gegevenspunten die worden verzameld via periodieke query's die worden uitgevoerd tot maximaal 30 databases in een SQL Server-exemplaar.
  • SQLServerOneSettingsException: bevat uitzonderingsberichten met betrekking tot het bijwerken van het schema en/of de queryset.
  • DigitalProductID: bevat gegevenspunten voor het aggregeren van geanonimiseerde (SHA-256) gehashte digitale product-id van SQL Server-exemplaren.

Voorbeelden van lokale auditbestanden

Hieronder ziet u een fragment van een JSON-bestanduitvoer van lokale controle.

[
  {
    "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
  }
]

Veelgestelde vragen

Hoe lezen DBA's de lokale auditlogboekbestanden? Deze logboekbestanden zijn geschreven in JSON-indeling. Elke regel is een JSON-object dat een stukje gebruiks-/diagnostische gegevens vertegenwoordigt dat naar Microsoft is geüpload. De namen van velden moeten duidelijk zijn.

Wat gebeurt er als de DBA het verzamelen van gebruiks- en diagnostische gegevens uitschakelt? Er wordt geen lokaal auditbestand geschreven.

Wat gebeurt er als er geen internetverbinding/computer zich achter de firewall bevindt? Sql Server-gebruiks- en diagnostische gegevens worden niet naar Microsoft verzonden. Er wordt nog steeds geprobeerd de lokale auditlogboeken te schrijven als deze correct zijn geconfigureerd.

Hoe schakelen DBA's lokale controle uit? Verwijder de registersleutelvermelding UserRequestedLocalAuditDirectory.

Wie kan de lokale auditlogboekbestanden lezen? Iedereen in uw organisatie die toegang heeft tot de lokale auditdirectory.

Hoe beheren DBA's de logboekbestanden die naar de aangewezen map zijn geschreven? DBA's moeten het opschonen van de bestanden in de map zelf beheren om te voorkomen dat er te veel schijfruimte wordt verbruikt.

Is er een client of hulpprogramma dat ik kan gebruiken om deze JSON-uitvoer te lezen? De uitvoer kan worden gelezen met Kladblok, Visual Studio of een JSON-lezer van uw keuze. U kunt ook het JSON-bestand lezen en de gegevens in een SQL Server-exemplaar analyseren, zoals hieronder wordt geïllustreerd. Ga naar JSON-bestanden importeren in SQL Server met behulp van OPENROWSET (BULK) en OPENJSON (Transact-SQL)voor meer informatie over het lezen van JSON-bestanden in SQL Server.

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'

Zie ook

Lokale controle voor het verzamelen van SSMS-gebruik en diagnostische gegevens