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

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

IntroduzioneIntroduction

In Microsoft SQL Server sono disponibili funzionalità abilitate per Internet che sono in grado di raccogliere e inviare a Microsoft dati relativi al computer o al dispositivo ("dati standard sul computer").Microsoft SQL Server contains Internet-enabled features that can collect and send information about your computer or device ("standard computer information") to Microsoft. 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 ed SQL Server Analysis Services (SSAS).As of SQL Server 2016 CU2, Local Audit is configurable at 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.

PrerequisitiPrerequisites

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 è stata aggiornata a SQL Server 2016 RTM CU2 o versione successiva.The instance is patched to SQL Server 2016 RTM CU2 or above.

  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 le autorizzazioni all'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL Server.Grant permissions to the SQL Server CIEP 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.

    Per il motore di database e Integration Services creare la chiave in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.<NOMEISTANZA>\CPE.For Database Engine and Integration Services create the key at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.<INSTANCENAME>\CPE.

    Per Analysis Services creare la chiave in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.<NOMEISTANZA>\CPE.For Analysis Services create the key at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.<INSTANCENAME>\CPE.

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. Avviare Servizi facendo clic sul pulsante Windows e digitando services.msc.Launch Services - click on the Windows button and type services.msc.

  2. Passare al servizio appropriato.Navigate to the appropriate service. Ad esempio, per il motore di database individuare Servizio Analisi utilizzo software di SQL Server <nome istanza>.For example, for the database engine locate SQL Server CEIP service <instance name>. Per Analysis Services individuare Analisi utilizzo software di SQL Server Analysis Services <nome istanza>.For Analysis Services locate SQL Server Analysis Services CEIP <instance name>. Per Integration Services individuare SQL Server Integration Services CEIP servizio 13.For Integration Services locate SQL Server Integration Services CEIP service 13.

  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.Click 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 causino problemi a SQL Server.Note: 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 al giorno per ogni istanza.On moderate workload with about 10 databases, plan on about 2 MB of disk space per day 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 SSAS usa lo stesso nome di istanza, creare una cartella separata per SSAS.If an instance of SSAS uses the same instance name, create a separate folder for SSAS. 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 le autorizzazioni all'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL ServerGrant permissions to the SQL Server CIEP 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 le autorizzazioni all'account di accesso al servizio di telemetria di Analisi utilizzo software di SQL ServerGrant permissions to the SQL Server CIEP 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 Sicurezzafare clic sull'autorizzazione di gestione Modifica .On the Security tab, click Edit manage Permission.

  4. Fare clic su Aggiungi e digitare le credenziali del servizio di telemetria di Analisi utilizzo software di Server SQL, ad esempio NT Service\SQLTELEMETRY.Click Add and type the credential of the SQL Server CEIP Telemetry Service, for example NT Service\SQLTELEMETRY.

  5. Fare clic su Controlla nomi per convalidare il nome specificato e quindi fare clic su OK.Click on Check Names to validate the name you provided, then click OK.

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

  7. Fare clic su OK per applicare immediatamente le modifiche alle autorizzazioni.Click 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 locale.Create 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.

    Per il motore di database e Integration Services usare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.<NOMEISTANZA>\CPE.For Database Engine and Integration Services use HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.<INSTANCENAME>\CPE.

    Per Analysis Services usare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.<NOMEISTANZA>\CPE.For Analysis Services use HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.<INSTANCENAME>\CPE.

  3. Fare clic con il pulsante destro del mouse sul percorso di CPE e scegliere Nuovo.Right-click on the CPE path and choose New. Fare clic su Valore stringa.Click 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 Local Audit on. 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.

    Per il motore di database e Integration Services usare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.<NOMEISTANZA>\CPE.For Database Engine and Integration Services use HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.<INSTANCENAME>\CPE.

    Per Analysis Services usare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.<NOMEISTANZA>\CPE.For Analysis Services use HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.<INSTANCENAME>\CPE.

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

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

    Per disabilitare il controllo locale, svuotare il valore in UserRequestedLocalAuditDirectory.To turn Local Audit off, 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, l'amministratore di sistema o un utente con diritti di accesso per avviare o arrestare Servizi Windows può seguire questa procedura:To start the SQL Server CEIP Service, System Administrator or someone who has access to start or stop Windows Services can follow the steps below:

  1. Avviare l'applicazione Servizi facendo clic sul pulsante Windows e digitando Servizi.Launch Services application, by clicking on the Windows button and type Services.

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

    Per il motore di database usare Servizio Analisi utilizzo software di SQL Server (<NOMEISTANZA>).For Database Engine, use SQL Server CEIP service (<INSTANCENAME>).

    Per Analysis Services usare Analisi utilizzo software di SQL Server Analysis Services (<NOMEISTANZA>).For Analysis Services, use SQL Server Analysis Services CEIP (<INSTANCENAME>).

  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.Verfiy 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.Note: 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, non necessari.To limit disk space usage by the files written by Local Audit, setup 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.Please 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 correlato 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 di 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 hostname, domainHash, sqmID, operatingSystemhostname, domainHash, sqmID, operatingSystem
IstanzaInstance instanceName, correlationID, clientVersioninstanceName, 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 represents 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 anonymized values for a number of the columns below.

NomeName DescrizioneDescription Valori di esempioExample values
hostnamehostname Nome (reso anonimo) del computer in cui è installato SQL ServerAnonymized machine name where SQL Server is installed de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11
domainHashdomainHash Hash di dominio (reso anonimo) del computer che ospita l'istanza di SQL ServerAnonymized domain hash of the machine hosting SQL Server instance de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11
sqmIdsqmId Identificatore che rappresenta il computer in cui è installato SQL ServerIdentifier representing the machine where SQL Server is installed 02AF58F5-753A-429C-96CD-3900E90DB99002AF58F5-753A-429C-96CD-3900E90DB990
NOMEISTANZAinstanceName Nome (reso anonimo) dell'istanza di SQL ServerAnonymized SQL Server instance name e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
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.

{
    "hostName": "de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11",
    "domainHash": "de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11",
    "sqmId": "02AF58F5-753A-429C-96CD-3900E90DB990",
    "instanceName": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "schemaVersion": "3",
    "emitTime": "2016-09-08T17:20:22.1124269Z",
    "sessionId": "89decf9a-ad11-485c-94a7-fefb3a02ed86",
    "correlationId": 0,
    "sequence": 15,
    "clientVersion": "13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223)",
    "operatingSystem": "Microsoft Windows Server 2012 R2 Datacenter",
    "querySetVersion": "1.0.0.0",
    "traceName": "SQLServerPeriodicQueries",
    "queryIdentifier": "SQLServerProperties.002",
    "data": [
      {
        "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"
      }
    ],
    "query": "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": 0
  } ,
  {
    "hostName": "de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11",
    "domainHash": "de3b3769a63970b63981ab7a956401388962c986bfd39d371f5870d800627d11",
    "sqmId": "02AF58F5-753A-429C-96CD-3900E90DB990",
    "instanceName": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "schemaVersion": "3",
    "emitTime": "2016-09-08T17:20:24.9819144Z",
    "sessionId": "89decf9a-ad11-485c-94a7-fefb3a02ed86",
    "correlationId": 0,
    "sequence": 61,
    "clientVersion": "13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223)",
    "operatingSystem": "Microsoft Windows Server 2012 R2 Datacenter",
    "querySetVersion": "1.0.0.0",
    "traceName": "SQLServerPeriodicQueries",
    "queryIdentifier": "ExternalScriptStats.001",
    "data": [
      {
        "counter_name": "Total Executions                                                                                                                ",
        "cntr_value": "0"
      },
      {
        "counter_name": "Parallel Executions                                                                                                             ",
        "cntr_value": "0"
      },
      {
        "counter_name": "Streaming Executions                                                                                                            ",
        "cntr_value": "0"
      },
      {
        "counter_name": "SQL CC Executions                                                                                                               ",
        "cntr_value": "0"
      },
      {
        "counter_name": "Implied Auth. Logins                                                                                                            ",
        "cntr_value": "0"
      },
      {
        "counter_name": "Total Execution Time (ms)                                                                                                       ",
        "cntr_value": "0"
      },
      {
        "counter_name": "Execution Errors                                                                                                                ",
        "cntr_value": "0"
      }
    ],  
    "query": "select counter_name, cntr_value from sys.dm_os_performance_counters where object_name like \u0027%External Scripts%\u0027",
    "queryTimeInTicks": 155834
  } 

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 letti con il Blocco note, Visual Studio o qualsiasi lettore JSON di propria scelta.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