Controllo locale per la raccolta di dati relativi all'utilizzo di SQL ServerLocal Audit for SQL Server Usage Feedback Collection

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (solo Windows)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (Windows only)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

IntroduzioneIntroduction

Microsoft SQL Server include funzionalità che supportano Internet e sono in grado di raccogliere e inviare a Microsoft dati relativi al computer o al dispositivo.Microsoft SQL Server contains Internet-enabled features that can collect and send information about your computer or device. Queste informazioni sono denominate informazioni standard del computer.This is called standard computer information. Il componente per il controllo locale della raccolta di dati relativi all'utilizzo di SQL Server scrive i dati raccolti dal servizio in una specifica cartella, che rappresenta i dati (log) da inviare a Microsoft.The Local Audit component of SQL Server Usage Feedback collection writes data collected by the service to a designated folder, representing the data (logs) that will be sent to Microsoft. Lo scopo del controllo locale è quello di consentire ai clienti di visualizzare tutti i dati che Microsoft raccoglie con questa funzionalità, per motivi di conformità alle normative o rispetto della privacy.The purpose of the Local Audit is to allow customers to see all data Microsoft collects with this feature, for compliance, regulatory or privacy validation reasons.

In SQL Server 2016 CU2 il controllo locale è configurabile a livello di istanza per il motore di database di SQL Server e SQL Server Analysis Services (SSAS).As of SQL Server 2016 CU2, Local Audit is configurable at the instance level for SQL Server Database Engine and Analysis Services (SSAS). In SQL Server 2016 CU4 e SQL Server 2016 SP1 il controllo locale è abilitato anche per SQL Server Integration Services (SSIS).In SQL Server 2016 CU4 and SQL Server 2016 SP1, Local Audit is also enabled for SQL Server Integration Services (SSIS). Per altri componenti di SQL Server installati durante la fase di installazione del programma e per strumenti di SQL Server scaricati o installati successivamente, la funzionalità di controllo locale per la raccolta dei dati relativi all'utilizzo non è disponibile.Other SQL Server components that get installed during Setup and SQL Server Tools that are downloaded or installed after Setup do not have Local Audit capability for usage feedback collection.

PrerequisitesPrerequisites

Per abilitare il controllo locale in ogni istanza di SQL Server sono previsti i prerequisiti seguenti:The following are prerequisites to enable Local Audit on each SQL Server instance:

  1. L'istanza deve essere stata aggiornata a SQL Server 2016 RTM CU2 o versione successiva.The instance is patched to SQL Server 2016 RTM CU2 or later. Per Integration Services, l'istanza deve essere stata aggiornata a SQL 2016 RTM CU4 o SQL 2016 SP1For Integration Services, the instance is patched to either SQL 2016 RTM CU4 or SQL 2016 SP1

  2. L'utente deve essere un amministratore di sistema o un ruolo con diritti di accesso per aggiungere e modificare la chiave del Registro di sistema, creare cartelle, gestire la sicurezza delle cartelle e arrestare o avviare un servizio di Windows.User must be a System Administrator or a role with access to add and modify Registry Key, create folders, manage folder security and stop/start a Windows Service.

Passaggi di configurazione preliminari all'abilitazione del controllo localePre-configuration Steps Prior To Turning On Local Audit

Prima di abilitare il controllo locale, un amministratore di sistema deve:Before turning on Local Audit, a system administrator needs to:

  1. Conoscere il nome dell'istanza di SQL Server e l'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL Server.Know the SQL Server instance name and the SQL Server CEIP Telemetry service logon account.

  2. Configurare una nuova cartella per i file del controllo locale.Configure a new folder for the Local Audit files.

  3. Concedere autorizzazioni all'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL Server.Grant permissions to the SQL Server CEIP Telemetry service logon account.

  4. Creare un'impostazione della chiave del Registro di sistema per configurare la directory di destinazione della funzionalità di controllo locale.Create a registry key setting to configure Local Audit target directory.

Ottenere l'account di accesso al servizio Analisi utilizzo software di SQL ServerGet the SQL Server CEIP Service Logon Account

Per ottenere l'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL Server, seguire questa procedura:Do the following steps to get the SQL Server CEIP Telemetry service logon account

  1. Aprire la console Servizi.Launch the Services console. A tale scopo, premere Tasto WINDOWS+R sulla tastiera per aprire la finestra di dialogo Esegui.To do this, select the Windows Key + R on your keyboard to open the Run dialog box. Digitare services.msc nel campo di testo e scegliere OK per avviare la console Servizi.Next, type in services.msc in the text field and select OK to launch the Services console.

  2. Passare al servizio appropriato.Navigate to the appropriate service. Ad esempio, per il motore di database trovare Servizio Analisi utilizzo software di SQL Server (nome-istanza).For example, for the database engine locate SQL Server CEIP service (Your-Instance-Name). Per Analysis Services trovare Analisi utilizzo software di SQL Server Analysis Services (nome-istanza).For Analysis Services locate SQL Server Analysis Services CEIP (Your-Instance-Name). Per Integration Services trovare Analisi utilizzo software di SQL Server Integration Services.For Integration Services locate SQL Server Integration Services CEIP service.

  3. Fare clic con il pulsante destro del mouse sul servizio e scegliere Proprietà.Right-click on the service and choose Properties.

  4. Fare clic sulla scheda Accesso. L'account di accesso è elencato in Il seguente account.Select on the Log On tab. The Logon account is in listed in This Account.

Configurare una nuova cartella per i file del controllo locale.Configure a new folder for the Local Audit files.

Creare una nuova cartella (directory del controllo locale) in cui archiviare i log della funzionalità di controllo locale.Create a new folder (Local Audit Directory) where the Local Audit will write the logs. Ad esempio, il percorso completo della directory del controllo locale per un'istanza predefinita del motore di database sarà: C:\SQLCEIPAudit\MSSQLSERVER\DB\.For example, the complete path to the Local Audit Directory for a default instance of the database engine would be: C:\SQLCEIPAudit\MSSQLSERVER\DB\.

Nota

Configurare il percorso di directory per il controllo locale all'esterno del percorso di installazione di SQL Server, per evitare che la funzionalità di controllo e l'applicazione di patch possano causare problemi a SQL Server.Configure the directory path for Local Audit outside the SQL Server installation path to avoid allowing auditing functionality and patching to cause potential problems with SQL Server.

Decisione di progettazioneDesign Decision ConsiglioRecommendation
Casella di controlloCheckbox Pianificare la disponibilità di spazioSpace availability Per un carico di lavoro moderato con circa 10 database, prevedere circa 2 MB di spazio su disco per ogni database e ogni istanza.On moderate workload with about 10 databases, plan on about 2 MB of disk space per database per instance.
Casella di controlloCheckbox Definire directory separateSeparate directories Creare una directory per ogni istanza.Create a directory for each instance. Ad esempio, usare C:\SQLCEIPAudit\MSSQLSERVER\DB\ per un'istanza di SQL Server denominata MSSQLSERVER.For example, use C:\SQLCEIPAudit\MSSQLSERVER\DB\ for a SQL Server instance named MSSQLSERVER. Ciò semplifica la gestione dei file.This simplifies file management.
Casella di controlloCheckbox Definire cartelle separateSeparate folders Usare una cartella specifica per ogni servizio.Use a specific folder for each service. Ad esempio, per un determinato nome di istanza, specificare una singola cartella per il motore di database.For example for a given instance name, have one folder for the database engine. Se un'istanza di Analysis Services usa lo stesso nome di istanza, creare una cartella separata per Analysis Services.If an instance of Analysis Services uses the same instance name, create a separate folder for Analysis Services. Se per entrambe le istanze del motore di database e di Analysis Services è configurata la stessa cartella, tutti i dati del controllo locale provenienti da tali istanze verranno scritti nello stesso file di log.Having both Database Engine and Analysis Services instances configured to the same folder will cause all the Local Audit to write to the same log file from both instances.
Casella di controlloCheckbox Concedere autorizzazioni all'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL ServerGrant permissions to the SQL Server CEIP Telemetry service logon account Abilitare i diritti Visualizzazione contenuto cartella, Lettura e Scrittura per l'account di accesso del servizio di telemetria di Analisi utilizzo software di SQL Server.Enable List folder contents, Read and Write access to the SQL Server CEIP Telemetry service logon account

Concedere autorizzazioni all'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL ServerGrant permissions to the SQL Server CEIP Telemetry service logon account

  1. In Esplora fileindividuare la posizione della nuova cartella.In File Explorer, navigate to the location where the new folder is located.

  2. Fare clic con il pulsante destro del mouse sulla nuova cartella e scegliere Proprietà.Right-click the new folder and choose Properties.

  3. Nella scheda Sicurezza selezionare l'autorizzazione di gestione Modifica.On the Security tab, select Edit manage Permission.

  4. Selezionare Aggiungi e digitare le credenziali del servizio di telemetria di Analisi utilizzo software di Server SQL.Select Add and type the credentials of the SQL Server CEIP Telemetry Service. Ad esempio NT Service\SQLTELEMETRY.For example NT Service\SQLTELEMETRY.

  5. Selezionare Controlla nomi per convalidare il nome specificato e quindi selezionare OK.Select Check Names to validate the name you provided, then select OK.

  6. Nella finestra di dialogo Autorizzazione scegliere l'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL Server e selezionare Visualizzazione contenuto cartella, Lettura e Scrittura.On the Permission dialog box, choose the Log On account to SQL Server CEIP Telemetry service and select List folder contents, Read and Write.

  7. Selezionare OK per applicare immediatamente le modifiche alle autorizzazioni.Select OK to apply the permission changes immediately.

Creare un'impostazione della chiave del Registro di sistema per configurare la directory di destinazione della funzionalità di controllo localeCreate a registry key setting to configure Local Audit target directory

  1. Avviare regedit.Launch regedit.

  2. Passare al percorso di CPE appropriato:Navigate to the appropriate CPE path:

    VersioneVersion Motore di database - Chiave del Registro di sistemaDatabase engine - Registry key
    20162016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.Nome-istanza\CPEHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.Your-Instance-Name\CPE
    20172017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.Nome-istanza\CPEHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.Your-Instance-Name\CPE
       
    VersioneVersion Analysis Services - Chiave del Registro di sistemaAnalysis Services - Registry key
    20162016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13.Nome-istanza\CPEHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13.Your-Instance-Name\CPE
    20172017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.Nome-istanza\CPEHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.Your-Instance-Name\CPE
       
    VersioneVersion Integration Services - Chiave del Registro di sistemaIntegration Services - Registry key
    20162016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130
    20172017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140
       
  3. Fare clic con il pulsante destro del mouse sul percorso di CPE e scegliere Nuovo.Right-click the CPE path and choose New. Selezionare Valore stringa.Select String Value.

  4. Denominare la nuova chiave del Registro di sistema UserRequestedLocalAuditDirectory.Name the new registry key UserRequestedLocalAuditDirectory.

Abilitazione o disabilitazione del controllo localeTurning Local Audit on or off

Dopo aver completato i passaggi di configurazione preliminari, è possibile abilitare il controllo locale.After you have completed the preconfiguration steps, you can turn on Local Audit. A tale scopo, usare un account di amministratore di sistema, o un ruolo simile con accesso alla modifica delle chiavi del Registro di sistema, per abilitare o disabilitare il controllo locale seguendo questa procedura.To do this, use a System Administrator account or a similar role with access to modifying Registry Keys to turn Local Audit on or off by following the steps below.

  1. Avviare regedit.Launch regedit.

  2. Passare al percorso di CPE appropriato.Navigate to the appropriate CPE path.

  3. Fare clic con il pulsante destro del mouse su UserRequestedLocalAuditDirectory e selezionare Modifica.Right-click UserRequestedLocalAuditDirectory and select Modify.

  4. Per abilitare il controllo locale, digitare il relativo percorso, ad esempio C:\SQLCEIPAudit\MSSQLSERVER\DB\.To turn on Local Audit, type the Local Audit path, for example C:\SQLCEIPAudit\MSSQLSERVER\DB\.

    Per disabilitare il controllo locale, svuotare il valore in UserRequestedLocalAuditDirectory.To turn off Local Audit, empty the value in UserRequestedLocalAuditDirectory.

  5. Chiudere regedit.Close regedit.

Analisi utilizzo software di SQL Server dovrebbe riconoscere immediatamente l'impostazione del controllo locale se il servizio è già in esecuzione.SQL Server CEIP should recognize the Local Audit setting immediately if the service is already running. Per avviare il servizio Analisi utilizzo software di SQL Server, un amministratore di sistema o un utente con diritti di accesso per avviare o arrestare Servizi di Windows può seguire questa procedura:To start the SQL Server CEIP Service, a System Administrator or someone who has access to start or stop Windows Services can follow the steps below:

  1. Aprire la console Servizi.Launch the Services console. A tale scopo, premere Tasto WINDOWS+R sulla tastiera per aprire la finestra di dialogo Esegui.To do this, select the Windows Key + R on your keyboard to open the Run dialog box. Digitare services.msc nel campo di testo e scegliere OK per avviare la console Servizi.Next, type in services.msc in the text field and select OK to launch the Services console.

  2. Passare al servizio appropriato.Navigate to the appropriate service.

    • Per il motore di database usare Servizio Analisi utilizzo software di SQL Server (Nome-istanza).For Database Engine, use SQL Server CEIP service (Your-Instance-Name).
    • Per Analysis Services usare Analisi utilizzo software di SQL Server Analysis Services (Nome-istanza).For Analysis Services, use SQL Server Analysis Services CEIP (Your-Instance-Name).
    • Per Integration Services,For Integration Services,
      • Per SQL 2016 usare Servizio Analisi utilizzo software di SQL Server Integration Services 13.0.For SQL 2016, use SQL Server Integration Services CEIP service 13.0.
      • Per SQL 2017 usare Servizio Analisi utilizzo software di SQL Server Integration Services 14.0.For SQL 2017, use SQL Server Integration Services CEIP service 14.0.
  3. Fare clic con il pulsante destro del mouse sul servizio e scegliere Riavvia.Right-click on the service and choose Restart.

  4. Verificare che lo stato del servizio sia In esecuzione.Verify that the status of the service is Running.

La funzionalità di controllo locale genererà un file di log al giorno.Local Audit will produce one log file per day. Ai file di log viene assegnato un nome nel formato <YYYY-MM-DD>.json.The log files will be in a form of <YYYY-MM-DD>.json. Ad esempio, 2016-07-12.json.For example, 2016-07-12.json. Se nella directory designata esiste già un file per il giorno corrente, i dati verranno aggiunti a tale file.If there is an existing file for the day in the designated directory, Local Audit will append to it. In caso contrario, ne verrà creato uno nuovo.Otherwise, it will create a new file for the day.

Nota

Dopo l'abilitazione del controllo locale, possono trascorrere fino a 5 minuti prima che il file di log venga scritto per la prima volta.After enabling Local Audit it may take up to 5 minutes for the log file to be written for the first time.

ManutenzioneMaintenance

  1. Per limitare l'utilizzo di spazio su disco per i file scritti dalla funzionalità di controllo locale, configurare criteri o un processo regolare per rimuovere dalla directory del controllo locale i file meno recenti e non necessari.To limit disk space usage by the files written by Local Audit, set up a policy or a regular job to clean up the Local Audit Directory to remove older, unneeded files.

  2. Proteggere il percorso della directory del controllo locale in modo che sia accessibile solo alle persone appropriate.Secure the Local Audit Directory path so that it is only accessible by the appropriate people. Si noti che i file di log contengono informazioni come descritto in Come configurare SQL Server 2016 per inviare commenti e suggerimenti a Microsoft.Note that the log files contain information as outlined in How to configure SQL Server 2016 to send feedback to Microsoft. È quindi opportuno impostare diritti di accesso a questi file in modo da impedirne la lettura alla maggior parte dei membri dell'organizzazione.Access to this file should prevent most members of your organization from reading it.

Dizionario dei dati della struttura di dati di output del controllo localeData Dictionary of Local Audit Output Data Structure

  • I file di log del controllo locale sono in formato JSON, contenente un set di oggetti (righe) che rappresentano i punti dati inviati a Microsoft nella data e all'ora definite da emitTime.Local Audit log files are in JSON, containing a set of objects (rows) representing data points that are sent back to Microsoft at emitTime.
  • Ogni riga segue uno schema specifico identificato da schemaVersion.Each row follows a specific schema identified by schemaVersion.
  • Ogni riga corrisponde a un output di una sessione del servizio SQLCEIP identificata come sessionID.Each row is an output of a SQLCEIP service session identified as sessionID.
  • Le righe vengono inviate in base a una sequenza identificata da sequence.Rows are emitted in sequence, identified by sequence.
  • Ogni riga di punto dati contiene l'output di un elemento queryIdentifier che può essere una query T-SQL, una sessione XE o un messaggio associato a un tipo di traccia, identificata come traceName.Each data point row contains the output of a queryIdentifier, which can be a T-SQL query, an XE session or a message related to a type of trace, identified as traceName.
  • Gli elementiqueryIdentifier vengono riuniti in gruppi a cui viene assegnata una versione con querySetVersion.queryIdentifiers are grouped and versioned together with querySetVersion.
  • L'elementodata contiene l'output dell'esecuzione query corrispondente, la cui durata è definita da queryTimeInTicks.data contains the output of the corresponding query execution, which took queryTimeInTicks.
  • Gli elementiqueryIdentifier per le query T-SQL contengono la definizione di query T-SQL archiviata nella query.queryIdentifiers for T-SQL queries have the T-SQL query definition stored in query.
Gerarchia logica delle informazioni del controllo localeLogical Local Audit information hierarchy Colonne correlateRelated columns
IntestazioneHeader emitTime, schemaVersionemitTime, schemaVersion
ComputerMachine operatingSystemoperatingSystem
IstanzaInstance instanceUniqueID, correlationID, clientVersioninstanceUniqueID, correlationID, clientVersion
SessioneSession sessionID, traceNamesessionID, traceName
QueryQuery sequence, querySetVersion, queryIdentifier, query, queryTimeInTickssequence, querySetVersion, queryIdentifier, query, queryTimeInTicks
dataData datadata

Definizione di coppie nome/valore ed esempiName/Value Pairs Definition and Examples

Le colonne elencate di seguito rappresentano l'ordinamento dell'output dei file del controllo locale.The columns listed below represent the order of the Local Audit file output. Per rendere anonimi i valori per alcune delle colonne seguenti viene usato un hash unidirezionale con SHA 256.One-way hash with SHA 256 is used to anonymize values for a number of the columns below.

nomeName DescrizioneDescription Valori di esempioExample values
instanceUniqueIDinstanceUniqueID Identificatore dell'istanza reso anonimoAnonymized instance identifier 888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD
schemaVersionschemaVersion Versione dello schema di SQLCEIPSchema version of SQLCEIP 33
emitTimeemitTime Data e ora di invio dei punti dati in UTC (Universal Time Coordinated)Data point emit-time in UTC 2016-09-08T17:20:22.1124269Z2016-09-08T17:20:22.1124269Z
sessionIDsessionId Identificatore di sessione del servizio SQLCEIPSession identifier to service SQLCEIP service 89decf9a-ad11-485c-94a7-fefb3a02ed8689decf9a-ad11-485c-94a7-fefb3a02ed86
correlationIdcorrelationId Segnaposto per un identificatore aggiuntivoPlace holder for an additional identifier 00
sequencesequence Numero di sequenza dei punti dati inviati nel corso della sessioneSequence number of the data points sent within the session 1515
clientVersionclientVersion Versione dell'istanza di SQL ServerSQL Server instance version 13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223)13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223)
operatingSystemoperatingSystem Versione del sistema operativo in cui è installata l'istanza di SQL ServerThe OS version where SQL Server instance is installed Microsoft Windows Server 2012 R2 DatacenterMicrosoft Windows Server 2012 R2 Datacenter
querySetVersionquerySetVersion Versione di un gruppo di definizioni di queryVersion of a group of query definitions 1.0.0.01.0.0.0
traceNametraceName Categorie di tracce: (SQLServerXeQueries, SQLServerPeriodicQueries, SQLServerOneSettingsException)Categories of traces: (SQLServerXeQueries, SQLServerPeriodicQueries, SQLServerOneSettingsException) SQLServerPeriodicQueriesSQLServerPeriodicQueries
queryIdentifierqueryIdentifier Identificatore della queryAn identifier of the query SQLServerProperties.002SQLServerProperties.002
datadata Output delle informazioni raccolte su queryIdentifier come output della query T-SQL, della sessione XE o dell'applicazioneThe output of the information collected on queryIdentifier as an output of T-SQL query, XE session, or the application [{"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) on Windows Server 2012 R2 Datacenter 6.3 \u003cX64\u003e (Build 9600: ) (Hypervisor)\n"}],[{"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) on Windows Server 2012 R2 Datacenter 6.3 \u003cX64\u003e (Build 9600: ) (Hypervisor)\n"}],
Queryquery Se applicabile, definizione di query T-SQL correlata all'elemento queryIdentifier che genera i dati.If applicable, the T-SQL query definition related to the queryIdentifier that produces data. Questo componente non viene caricato dal servizio Analisi utilizzo software di SQL Server.This component does not get uploaded by SQL Server CEIP service. È incluso nel controllo locale solo come riferimento per i clienti.It is included in Local Audit as a reference to customers only. 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 VersionSELECT\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
queryTimeInTicksqueryTimeInTicks Tempo impiegato per l'esecuzione della query con la categoria di traccia seguente: (SQLServerXeQueries, SQLServerPeriodicQueries)The duration it takes for the query with the following trace category to execute: (SQLServerXeQueries, SQLServerPeriodicQueries) 00

Categorie di tracciaTrace Categories

Attualmente i dati vengono raccolti in base alle categorie di traccia seguenti:Currently we collect the following trace categories:

  • SQLServerXeQueries: contiene i punti dati raccolti tramite la sessione di eventi estesi.SQLServerXeQueries: contains data points collected through Extended Event session.
  • SQLServerPeriodicQueries: contiene i punti dati raccolti tramite query periodiche eseguite in un'istanza di SQL Server.SQLServerPeriodicQueries: contains data points collected through periodic queries executed in a SQL Server instance.
  • SQLServerPerDBPeriodicQueries: contiene i punti dati raccolti tramite query periodiche eseguite su un massimo di 30 database in un'istanza di SQL Server.SQLServerPerDBPeriodicQueries: contains data points collected through periodic queries executed to up to 30 databases in a SQL Server instance.
  • SQLServerOneSettingsException: contiene i messaggi di eccezione correlati all'aggiornamento dello schema e/o al set di query.SQLServerOneSettingsException: contains exception messages related to updating schema and/or query set.
  • DigitalProductID: contiene i punti dati per l'aggregazione degli ID di prodotto digitale (resi anonimi) con hash (SHA-256) delle istanze di SQL Server.DigitalProductID: contains data points for aggregating anonymized (SHA-256) hashed digital product ID of SQL Server instances.

Esempi di file del controllo localeLocal Audit File Examples

Di seguito è riportato un estratto di un output di file JSON della funzionalità di controllo locale.Below is an excerpt of a JSON file output of Local Audit.

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

Domande frequentiFrequently Asked Questions

Come fanno gli amministratori di database a leggere i file di log del controllo locale?How do DBAs read the Local Audit log files? Questi file di log vengono scritti in formato JSON.These log files are written in JSON format. Ogni riga corrisponde a un oggetto JSON che rappresenta un elemento di telemetria inviato a Microsoft.Each line will be a JSON object representing a piece of telemetry uploaded to Microsoft. I nomi dei campi devono essere facilmente comprensibili.The fields names should be self-explanatory.

Cosa accade se l'amministratore di database disabilita la raccolta di dati relativi all'utilizzo?What happens if the DBA disables Usage Feedback Collection? Non verrà scritto alcun file del controllo locale.No Local Audit file will be written.

Cosa accade se la connettività Internet non è disponibile o il computer si trova all'interno del firewall?What happens if there is not internet connectivity/machine is behind the firewall? I dati relativi all'utilizzo di SQL Server 2016 non verranno inviati a Microsoft.SQL Server 2016 usage feedback will not be sent to Microsoft. Se configurato correttamente, il computer proverà comunque a scrivere i log del controllo locale.It will still try to write the local audit logs if configured correctly.

Come fanno gli amministratori di database a disabilitare il controllo locale?How do DBAs disable Local Audit? Per eseguire questa operazione, rimuovere la voce della chiave del Registro di sistema UserRequestedLocalAuditDirectory.Remove the UserRequestedLocalAuditDirectory registry key entry.

Chi può leggere i file di log del controllo locale?Who can read the Local Audit log files? Tutti gli utenti dell'organizzazione che dispongono dell'accesso alla directory del controllo locale.Anyone in your organization that has access to the Local Audit Directory.

Come fanno gli amministratori di database a gestire i file di log scritti nella directory designata?How do DBAs manage the log files written to the designated directory? Gli amministratori di database devono gestire autonomamente la pulizia dei file nella directory per evitare un utilizzo eccessivo dello spazio su disco.DBAs will need to self-manage the clean-up of the files in the directory to avoid consuming too much disk space.

Quale client o strumento è possibile usare per leggere l'output JSON?Is there a client or tool that I can use to read this JSON output? L'output può essere letto con il Blocco note, in Visual Studio o nel lettore JSON desiderato.The output can be read with Notepad, Visual Studio, or any JSON reader of your choice. In alternativa, è possibile leggere il file JSON e analizzare i dati in un'istanza di SQL Server 2016, come illustrato di seguito.Alternatively, you can read the JSON file and analyze the data in an SQL Server 2016 instance as illustrated below. Per altre informazioni su come leggere il file JSON in SQL Server, visitare Importing JSON files into SQL Server using OPENROWSET (BULK) and OPENJSON (Transact-SQL)(Importazione di file JSON in SQL Server mediante OPENROWSET (BULK) e OPENJSON (Transact-SQL)).More details on how to read JSON file in SQL Server, please visit Importing JSON files into SQL Server using OPENROWSET (BULK) and 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'

Vedere ancheSee Also

Controllo locale per la raccolta di dati relativi all'utilizzo di SSMSLocal Audit for SSMS Usage Feedback Collection