Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server su Windows
Istanza gestita di SQL di Azure
Introduzione
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. Queste informazioni sono denominate informazioni standard del computer. Il componente per il controllo locale della raccolta di dati di diagnostica e utilizzo di SQL Server scrive i dati raccolti dal servizio in una specifica cartella, che rappresenta i dati (log) da inviare a 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.
Per SQL Server 2016 CU2 e CU3 il controllo locale è configurabile a livello di istanza per il motore di database di SQL Server e SQL Server Analysis Services (SSAS). Per SQL Server 2016 CU4, SQL Server 2016 SP1 e versioni successive il controllo locale è abilitato anche per 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 di diagnostica e utilizzo non è disponibile.
Osservazioni:
- La rimozione o la disattivazione del servizio SQL CEIP non è supportata.
- La rimozione delle risorse SQL CEIP dal gruppo di cluster non è supportata.
Il rifiuto esplicito della raccolta dei dati di utilizzo e diagnostica di SQL Server è supportato, ma il servizio non può essere rimosso o disabilitato. Per rifiutare esplicitamente la raccolta di dati, vedere Attivazione o disattivazione del controllo locale
Prerequisiti
Per abilitare il controllo locale in ogni istanza di SQL Server sono previsti i prerequisiti seguenti:
L'istanza deve essere stata aggiornata a SQL Server 2016 RTM CU2 o versione successiva. Per i Servizi di Integrazione, l'istanza è aggiornata su SQL Server 2016 RTM CU4, SQL Server 2016 SP1 o versioni successive.
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.
Passaggi di configurazione preliminari all'attivazione del controllo locale
Prima di attivare il controllo locale, un amministratore di sistema deve:
Conoscere il nome dell'istanza di SQL Server e l'account di accesso del servizio SQL Server CEIP.
Configurare una nuova cartella per i file del controllo locale.
Concedi autorizzazioni all'account di accesso del servizio CEIP di SQL Server.
Crea un'impostazione di una chiave del Registro di sistema per configurare la directory di destinazione dell'audit locale.
Ottenere l'account di accesso del servizio CEIP di SQL Server
Per ottenere l'account di accesso del servizio CEIP di SQL Server, eseguire i passaggi seguenti
Aprire la console Servizi. A tale scopo, premere Tasto WINDOWS+R sulla tastiera per aprire la finestra di dialogo Esegui. Digitare services.msc nel campo di testo e scegliere OK per avviare la console Servizi.
Passa al servizio corretto. Ad esempio, per il motore di database individuare SQL Server CEIP service(Nome-istanza). Per Analysis Services, individuare SQL Server Analysis Services CEIP(Nome-istanza). Per Integration Services, individuare servizio CEIP di SQL Server Integration Services.
Fare clic con il pulsante destro del mouse sul servizio e scegliere Proprietà.
Fare clic sulla scheda Accesso. L'account di accesso è indicato in Questo account.
Configurare una nuova cartella per i file del controllo locale.
Crea una nuova cartella (directory di audit locale) in cui l'audit locale scriverà i log. Ad esempio, il percorso completo della directory del controllo locale per un'istanza predefinita del motore di database sarà: 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.
| Decisione di progettazione | Suggerimento |
|---|---|
| Disponibilità di spazio | Per un carico di lavoro moderato con circa 10 database, prevedere circa 2 MB di spazio su disco per ogni database e ogni istanza. |
| Directory separate | Creare una directory per ogni istanza. Ad esempio, usare C:\SQLCEIPAudit\MSSQLSERVER\DB\ per un'istanza di SQL Server denominata MSSQLSERVER. Ciò semplifica la gestione dei file. |
| Definire cartelle separate | Usare una cartella specifica per ogni servizio. Ad esempio, per un determinato nome di istanza, specificare una singola cartella per il motore di database. Se un'istanza di Analysis Services usa lo stesso nome di istanza, creare una cartella separata per 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. |
| Concedi autorizzazioni all'account di accesso del servizio CEIP di SQL Server | Abilitare l'accesso Elenco contenuto cartella, Lettura e Scrittura per l'account di accesso del servizio CEIP di SQL Server |
Concedere le autorizzazioni all'account di accesso del servizio SQL Server CEIP
In Esplora fileindividuare la posizione della nuova cartella.
Fare clic con il pulsante destro del mouse sulla nuova cartella e scegliere Proprietà.
Nella scheda Sicurezza selezionare l'autorizzazione di gestione Modifica.
Selezionare Aggiungi e immettere le credenziali del servizio SQL Server CEIP. Ad esempio,
NT Service\SQLTELEMETRY.Selezionare Controlla nomi per convalidare il nome specificato e quindi selezionare OK.
Nella finestra di dialogo Autorizzazioni, scegliere l'account usato per l'accesso al servizio SQL Server CEIP e selezionare Visualizzazione contenuto cartella, Lettura e Scrittura.
Selezionare OK per applicare immediatamente le modifiche alle autorizzazioni.
Creare un'impostazione di una chiave del Registro di sistema per configurare la directory di destinazione del controllo locale
Avviare regedit.
Passare al percorso CPE appropriato:
Versione Motore di database - Chiave del Registro di sistema 2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.Nome-della-tua-istanza\CPE 2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.Nome-istanza-personalizzato\CPE 2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.Nome-istanza-personalizzato\CPE Versione Analysis Services - Chiave del Registro di sistema 2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13.Nome-dell'istanza\CPE 2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.Nome-dell'istanza\CPE 2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS15.Nome-dell'istanza\CPE Versione Integration Services - Chiave del Registro di sistema 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 Fare clic con il pulsante destro del mouse sul percorso di CPE e scegliere Nuovo. Selezionare Valore di tipo stringa.
Denominare la nuova chiave del Registro di sistema
UserRequestedLocalAuditDirectory.
Attivazione o disattivazione del controllo locale
Dopo aver completato i passaggi di configurazione preliminari, è possibile attivare il controllo locale. 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 attivare o disattivare il controllo locale seguendo questa procedura.
Avviare regedit.
Passare al percorso CPE corretto.
Fare clic con il pulsante destro del mouse su UserRequestedLocalAuditDirectory e selezionare Modifica.
Per attivare il controllo locale, digitare il relativo percorso, ad esempio C:\SQLCEIPAudit\MSSQLSERVER\DB\.
Per disattivare il controllo locale, svuotare il valore in UserRequestedLocalAuditDirectory.
Chiudere regedit.
SQL Server CEIP dovrebbe riconoscere immediatamente l'impostazione di audit locale se il servizio è già in esecuzione. Per avviare il Servizio CEIP di SQL Server, un amministratore di sistema o un utente che dispone delle autorizzazioni necessarie per avviare o arrestare i servizi di Windows può seguire i passaggi seguenti:
Aprire la console Servizi. A tale scopo, premere Tasto WINDOWS+R sulla tastiera per aprire la finestra di dialogo Esegui. Digitare services.msc nel campo di testo e scegliere OK per avviare la console Servizi.
Passa al servizio corretto.
- Per motore di database, usare il servizio SQL Server CEIP (Your-Instance-Name).
- Per Analysis Services, utilizzare Programma Analisi utilizzo software di SQL Server Analysis Services (Nome-dell'istanza).
- Per Integration Services,
- Per SQL Server 2016, usa SQL Server Integration Services CEIP service 13.0.
- Per SQL Server 2017, utilizza SQL Server Integration Services CEIP service 14.0.
- Per SQL Server 2019, usa SQL Server Integration Services CEIP service 15.0.
Fare clic con il pulsante destro del mouse sul servizio e scegliere Riavvia.
Verificare che lo stato del servizio sia In esecuzione.
La funzionalità di controllo locale genererà un file di log al giorno. Ai file di log viene assegnato un nome nel formato <YYYY-MM-DD>.json. Ad esempio, 2016-07-12.json. Se nella directory designata esiste già un file per il giorno corrente, i dati verranno aggiunti a tale file. In caso contrario, verrà creato un nuovo file per il giorno corrente.
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.
Manutenzione
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.
Mettere in sicurezza il percorso della directory di audit locale in modo che sia accessibile solo agli utenti autorizzati. Si noti che i file di log contengono informazioni come descritto in Come configurare SQL Server 2016 per inviare commenti e suggerimenti a Microsoft. È quindi opportuno impostare diritti di accesso a questi file in modo da impedirne la lettura alla maggior parte dei membri dell'organizzazione.
Dizionario dei dati della struttura di dati di output del controllo locale
- 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.
- Ogni riga segue uno schema specifico identificato da schemaVersion.
- Ogni riga corrisponde a un output di una sessione del servizio SQLCEIP identificata come sessionID.
- Le righe vengono inviate in base a una sequenza identificata da 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.
- Gli elementiqueryIdentifier vengono riuniti in gruppi a cui viene assegnata una versione con querySetVersion.
- L'elemento data contiene l'output dell'esecuzione della query corrispondente, che ha richiesto queryTimeInTicks.
- Gli elementiqueryIdentifier per le query T-SQL contengono la definizione di query T-SQL archiviata nella query.
| Gerarchia logica delle informazioni del controllo locale | Colonne correlate |
|---|---|
| Intestazione | emitTime, schemaVersion |
| Macchina | sistema operativo |
| Istanza | instanceUniqueID, correlationID, clientVersion |
| Sessione | sessionID, traceName |
| Query | sequenza, querySetVersion, queryIdentifier, query, queryTimeInTicks |
| Dati | data |
Definizione di coppie nome/valore ed esempi
Le colonne elencate di seguito rappresentano l'ordine dell'output del file di audit locale. Per rendere anonimi i valori per alcune delle colonne seguenti viene usato un hash unidirezionale con SHA 256.
| Nome | Descrizione | Valori di esempio |
|---|---|---|
| instanceUniqueID | Identificatore dell'istanza reso anonimo | 888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD |
| schemaVersion | Versione dello schema di SQLCEIP | 3 |
| emitTime | Ora di emissione del punto dati in UTC | 2016-09-08T17:20:22.1124269Z |
| sessionId | Identificatore di sessione del servizio SQLCEIP | 89decf9a-ad11-485c-94a7-fefb3a02ed86 |
| correlationId | Segnaposto per un identificatore aggiuntivo | 0 |
| sequenza | Numero di sequenza dei punti dati inviati nel corso della sessione | 15 |
| clientVersion | Versione dell'istanza di SQL Server | 13.0.2161.3 (SQL16_RTM_QFE-CU).160907-1223) |
| sistema operativo | Versione del sistema operativo in cui è installata l'istanza di SQL Server | Microsoft Windows Server 2012 R2 Datacenter |
| querySetVersion | Versione di un gruppo di definizioni di query | 1.0.0.0 |
| traceName | Categorie di tracce: (SQLServerXeQueries, SQLServerPeriodicQueries, SQLServerOneSettingsException) | SQLServerPeriodicQueries |
| queryIdentifier | Un identificatore della query | SQLServerProperties.002 |
| data | Risultato delle informazioni raccolte su queryIdentifier come risultato di una query T-SQL, di una sessione XE o dell'applicazione | [{"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:24 16 \n\tCopyright (c) Microsoft Corporation\n\tStandard Edition (64 bit) in Windows Server 2012 R2 Datacenter 6.3 \u003cX64\u003e (Build 9600: ) (Hypervisor)\n"}], |
| interrogazione | Se applicabile, definizione di query T-SQL correlata all'elemento queryIdentifier che genera i dati. Questo componente non viene caricato dal servizio CEIP di SQL Server. È incluso nel controllo locale solo come riferimento per i clienti. | 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 | Tempo impiegato per l'esecuzione della query con la categoria di traccia seguente: (SQLServerXeQueries, SQLServerPeriodicQueries) | 0 |
Categorie di traccia
Attualmente i dati vengono raccolti in base alle categorie di traccia seguenti:
- SQLServerXeQueries: contiene i punti dati raccolti tramite la sessione di eventi estesi.
- SQLServerPeriodicQueries: contiene i punti dati raccolti tramite query periodiche eseguite in un'istanza di SQL Server.
- SQLServerPerDBPeriodicQueries: contiene i punti dati raccolti tramite query periodiche eseguite su un massimo di 30 database in un'istanza di SQL Server.
- SQLServerOneSettingsException: contiene i messaggi di eccezione correlati all'aggiornamento dello schema e/o al set di query.
- DigitalProductID: contiene dati per aggregare l'ID prodotto digitale sottoposto ad hash anonimizzato (SHA-256) delle istanze di SQL Server.
Esempi di file di audit locale
Di seguito è riportato un estratto dell'output di un file JSON di una verifica locale.
[
{
"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 frequenti
Come fanno gli amministratori di database a leggere i file di log del controllo locale? Questi file di log vengono scritti in formato JSON. Ogni riga corrisponde a un oggetto JSON che rappresenta un elemento di dei dati di diagnostica e utilizzo inviati a Microsoft. I nomi dei campi devono essere facilmente comprensibili.
Cosa accade se l'amministratore di database disabilita la raccolta dei dati di diagnostica e utilizzo? Non verrà scritto alcun file del controllo locale.
Cosa accade se la connettività Internet non è disponibile o il computer si trova all'interno del firewall? I dati di diagnostica e utilizzo di SQL Server non verranno inviati a Microsoft. Se configurato correttamente, il computer proverà comunque a scrivere i log del controllo locale.
Come fanno gli amministratori di database a disabilitare il controllo locale? Rimuovere la voce della chiave di registro UserRequestedLocalAuditDirectory.
Chi può leggere i file di log del controllo locale? Chiunque nella tua organizzazione abbia accesso alla directory di controllo locale.
Come fanno gli amministratori di database a gestire i file di log scritti nella directory designata? Gli amministratori di database devono gestire autonomamente la pulizia dei file nella directory per evitare un utilizzo eccessivo dello spazio su disco.
Quale client o strumento è possibile usare per leggere l'output JSON? L'output può essere letto con il Blocco note, in Visual Studio o nel lettore JSON desiderato. In alternativa, è possibile leggere il file JSON e analizzare i dati in un'istanza di SQL Server, come illustrato di seguito. 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)).
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'
Vedi anche
Controllo locale per la raccolta di dati di diagnostica e utilizzo di SSMS