Auditoria local para coleta de dados de diagnóstico e uso do SQL Server (Programa de Aperfeiçoamento da Experiência do Usuário)
Aplica-se a: SQL Server - somente Windows Instância Gerenciada de SQL do Azure
Introdução
O Microsoft SQL Server contém recursos habilitados para Internet que podem coletar e enviar à Microsoft informações sobre seu computador ou dispositivo. Isso é chamado de informações padrão do computador. O componente de auditoria local da Coleta Dados de Diagnóstico e Uso do SQL Server grava dados coletados pelo serviço em uma pasta designada, que representa os dados (logs) que serão enviados à Microsoft. A finalidade da auditoria local é permitir que os clientes vejam todos os dados que a Microsoft coleta com esse recurso, para fins de conformidade, regulatórios ou de validação de privacidade.
Para o SQL Server 2016 CU2 e CU3, a auditoria Local é configurável no nível da instância no Mecanismo de Banco de Dados do SQL Server e o SSAS (Analysis Services). Para o SQL Server 2016 CU4, 2016 SP1 e versões mais recentes, a auditoria local também está habilitada para o SSIS (SQL Server Integration Services). Outros componentes do SQL Server que são instalados durante a instalação e as ferramentas do SQL Server que são baixadas ou instaladas após a instalação não têm o recurso de auditoria local para coleta de dados de diagnóstico e uso.
Comentários
- Não há suporte para remover ou desabilitar o serviço Programa de Aperfeiçoamento da Experiência do Usuário do SQL.
- Não há suporte para remover os recursos do Programa de Aperfeiçoamento da Experiência do Usuário do SQL do Grupo de Clusters.
É possível recusar o uso e a coleta de dados de diagnóstico do SQL Server, mas o serviço não pode ser removido ou desabilitado. Para recusar a coleta de dados, veja Ativando ou desativando a auditoria local
Pré-requisitos
A seguir estão os pré-requisitos para habilitar a auditoria local em cada instância do SQL Server:
A instância está corrigida para o SQL Server 2016 RTM CU2 ou posterior. Para o Integration Services, o patch da instância é aplicado ao SQL 2016 RTM CU4, ao SQL 2016 SP1 ou a versões mais recentes.
O usuário deve ser um administrador do sistema ou ter uma função com acesso para adicionar e modificar a Chave do Registro, criar pastas, gerenciar a segurança das pastas e parar/iniciar um Serviço do Windows.
Etapas de pré-configuração antes de ativar a auditoria local
Antes de ativar a auditoria local, um administrador do sistema deve:
Conhecer o nome da instância do SQL Server e a conta de logon do serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server.
Configurar uma nova pasta para os arquivos de auditoria local.
Conceder permissões para a conta de logon do serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server.
Criar uma configuração de chave do Registro para configurar o diretório de destino da auditoria local.
Obter a conta de logon de serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server
Execute as seguintes etapas para obter a conta de logon do serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server
Inicie o console Serviços. Para fazer isso, selecione a tecla Windows + R no teclado para abrir a caixa de diálogo Executar. Em seguida, digite services.msc no campo de texto e selecione OK para iniciar o console Serviços.
Navegue até o serviço apropriado. Por exemplo, para o mecanismo de banco de dados, localize o Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server (nome da instância). Para o Analysis Services, localize Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server Analysis Services (nome da instância). Para o Integration Services, localize o serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server Integration Services.
Clique com o botão direito do mouse no serviço e escolha Propriedades.
Selecione a guia Fazer logon. A conta de Logon está listada em Esta Conta.
Configurar uma nova pasta para os arquivos de auditoria local.
Crie uma nova pasta (diretório da auditoria local) em que a auditoria local gravará os logs. Por exemplo, o caminho completo para o Diretório da auditoria local para uma instância padrão do mecanismo de banco de dados seria: C:\SQLCEIPAudit\MSSQLSERVER\DB\.
Observação
Configure o caminho do diretório da auditoria local fora do caminho de instalação do SQL Server para evitar que a funcionalidade de auditoria e a aplicação de patches causem problemas com o SQL Server.
Decisão de design | Recomendação |
---|---|
Disponibilidade de espaço | Com uma carga de trabalho moderada com cerca de 10 bancos de dados, planeje ter cerca de 2 MB de espaço em disco por banco de dados por instância. |
Diretórios separados | Crie um diretório para cada instância. Por exemplo, use C:\SQLCEIPAudit\MSSQLSERVER\DB\ para uma instância do SQL Server chamada MSSQLSERVER . Isso simplifica o gerenciamento de arquivos. |
Pastas separadas | Use uma pasta específica para cada serviço. Por exemplo, para um determinado nome de instância, tenha uma pasta para o mecanismo de banco de dados. Se uma instância do Analysis Services usar o mesmo nome de instância, crie uma pasta separada para o Analysis Services. Ter instâncias do Mecanismo de Banco de Dados e do Analysis Services configuradas para a mesma pasta fará com que a auditoria local grave no mesmo arquivo de log para as duas instâncias. |
Conceder permissões para a conta de logon do serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server | Habilite acesso para Listar Conteúdo da Pasta, Ler e Gravar à conta de logon do serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server |
Conceder permissões para a conta de logon do serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server
No Explorador de Arquivos, navegue até o local em que a nova pasta está localizada.
Clique com o botão direito do mouse na nova pasta e escolha Propriedades.
Na guia Segurança, selecione Editar e gerenciar Permissão.
Selecione Adicionar e digite as credenciais do Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server. Por exemplo,
NT Service\SQLTELEMETRY
.Selecione Verificar Nomes para validar o nome fornecido e selecione OK.
Na caixa de diálogo Permissão, escolha a conta de logon ao Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server e selecione Listar conteúdo da pasta, Ler e Gravar.
Selecione OK para aplicar as alterações de permissão imediatamente.
Criar uma configuração de chave do Registro para configurar o diretório de destino da auditoria local
Inicie o regedit.
Navegue até o caminho do CPE apropriado:
Versão Mecanismo de banco de dados – chave do Registro 2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.Your-Instance-Name\CPE 2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.Your-Instance-Name\CPE 2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.Your-Instance-Name\CPE Versão Analysis Services – chave do Registro 2016 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13.Your-Instance-Name\CPE 2017 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS14.Your-Instance-Name\CPE 2019 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS15.Your-Instance-Name\CPE Versão Integration Services – chave do Registro 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 Clique com o botão direito do mouse no caminho do CPE e escolha Novo. Selecione Valor de cadeia de caracteres.
Nomeie a nova chave do Registro
UserRequestedLocalAuditDirectory
.
Ativando ou desativando a auditoria local
Depois de concluir as etapas de pré-configuração, você pode ativar a auditoria local. Para fazer isso, use uma conta de administrador do sistema ou com uma função semelhante com acesso para modificar chaves de registro para ativar ou desativar a auditoria local seguindo as etapas abaixo.
Inicie o regedit.
Navegue até o caminho do CPE apropriado.
Clique com o botão direito do mouse em UserRequestedLocalAuditDirectory e selecione Modificar.
Para ativar a auditoria local, digite o caminho da auditoria local, por exemplo, C:\SQLCEIPAudit\MSSQLSERVER\DB\.
Para desativar a auditoria local, esvazie o valor em UserRequestedLocalAuditDirectory.
Feche o regedit.
O Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server deve reconhecer a configuração da auditoria local imediatamente se o serviço já estiver em execução. Para iniciar o serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server, o administrador do sistema ou alguém que tenha acesso para iniciar ou parar Serviços do Windows pode seguir as etapas abaixo:
Inicie o console Serviços. Para fazer isso, selecione a tecla Windows + R no teclado para abrir a caixa de diálogo Executar. Em seguida, digite services.msc no campo de texto e selecione OK para iniciar o console Serviços.
Navegue até o serviço apropriado.
- Para o Mecanismo de Banco de Dados, use Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server (nome da instância).
- Para o Analysis Services, use Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server Analysis Services (nome da instância).
- Para o Integration Services,
- Para o SQL 2016, use Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server Integration Services 13.0.
- Para o SQL 2017, use Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server Integration Services 14.0.
- No SQL 2019, use Serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server Integration Services 15.0.
Clique com o botão direito do mouse no serviço e escolha Reiniciar.
Verifique se o status do serviço é Executando.
A auditoria local produzirá um arquivo de log por dia. Os arquivos de log estarão na forma de <YYYY-MM-DD>.json
. Por exemplo, 2016-07-12.json. Se houver um arquivo existente para o dia no diretório designado, a auditoria local acrescentará a ele. Caso contrário, criará um novo arquivo para o dia.
Observação
Após habilitar a auditoria local, pode levar até 5 minutos para que o arquivo de log seja gravado pela primeira vez.
Manutenção
Para limitar o uso do espaço em disco pelos arquivos gravados pela auditoria local, configure uma política ou um trabalho regular para limpar o Diretório da auditoria local para remover arquivos antigos e desnecessários.
Proteja o caminho do Diretório da auditoria local para que ele seja acessível apenas para as pessoas apropriadas. Observe que os arquivos de log contêm as informações descritas em Como configurar o SQL Server 2016 para enviar comentários à Microsoft. O acesso a este arquivo deve impedir que a maioria dos membros de sua organização o leiam.
Dicionário de dados da estrutura de dados de saída da auditoria local
- Os arquivos de log da auditoria local estão em JSON, contendo um conjunto de objetos (linhas) que representam pontos de dados que são enviados de volta para a Microsoft em emitTime.
- Cada linha segue um esquema específico identificado por schemaVersion.
- Cada linha é uma saída de uma sessão de serviços SQLCEIP identificada como sessionID.
- As linhas são emitidas em sequência, identificadas por sequence.
- Cada linha de ponto de dados contém a saída de um queryIdentifier, que pode ser uma consulta T-SQL, uma sessão XE ou uma mensagem relacionada a um tipo de rastreamento, identificado como traceName.
- queryIdentifiers são agrupados e sua versão é controlada em conjunto com querySetVersion.
- data contêm a saída da execução da consulta correspondente que levou queryTimeInTicks.
- queryIdentifiers para consultas T-SQL têm a definição da consulta T-SQL armazenada na consulta.
Hierarquia lógica de informações da auditoria local | Colunas relacionadas |
---|---|
Cabeçalho | emitTime, schemaVersion |
Computador | operatingSystem |
Instância | instanceUniqueID, correlationID, clientVersion |
Session | sessionID, traceName |
Consulta | sequence, querySetVersion, queryIdentifier, query, queryTimeInTicks |
Dados | data |
Definição e exemplos de pares nome/valor
As colunas listadas abaixo representam a ordem da saída de arquivos da auditoria local. Hash unidirecional com SHA 256 é usado para valores mantidos em anonimato para várias das colunas abaixo.
Nome | Descrição | Valores de exemplo |
---|---|---|
instanceUniqueID | Identificador da instância em anonimato | 888770C4D5A8C6729F76F33D472B28883AE518C92E1999888B171A085059FD |
schemaVersion | Versão do esquema do SQLCEIP | 3 |
emitTime | Hora de emissão do ponto de dados em UTC | 2016-09-08T17:20:22.1124269Z |
sessionID | Identificador da sessão para o serviço do SQLCEIP | 89decf9a-ad11-485c-94a7-fefb3a02ed86 |
correlationId | Espaço reservado para um identificador adicional | 0 |
sequence | Número de sequência de pontos de dados enviados dentro da sessão | 15 |
clientVersion | Versão da instância do SQL Server | 13.0.2161.3 ((SQL16_RTM_QFE-CU).160907-1223) |
operatingSystem | A versão do sistema operacional em que a instância do SQL Server está instalada | Microsoft Windows Server 2012 R2 Datacenter |
querySetVersion | Versão de um grupo de definições de consulta | 1.0.0.0 |
traceName | Categorias de rastreamentos: (SQLServerXeQueries, SQLServerPeriodicQueries, SQLServerOneSettingsException) | SQLServerPeriodicQueries |
queryIdentifier | Um identificador da consulta | SQLServerProperties.002 |
data | A saída das informações coletadas em queryIdentifier como uma saída de uma consulta T-SQL, sessão XE ou do aplicativo | [{"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"}], |
Consulta | Se aplicável, a definição da consulta T-SQL relacionada com o queryIdentifier que produz os dados. Este componente não é carregado pelo serviço do Programa de Aperfeiçoamento da Experiência do Usuário do SQL Server. Ele está incluído na auditoria local apenas como uma referência para os clientes. | 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 | A duração necessária para que a consulta com a seguinte categoria de rastreamento seja executada: (SQLServerXeQueries, SQLServerPeriodicQueries) | 0 |
Categorias de rastreamento
Atualmente, coletamos as seguintes categorias de rastreamento:
- SQLServerXeQueries: contém pontos de dados coletados por meio da sessão de Evento Estendido.
- SQLServerPeriodicQueries: contém pontos de dados coletados por meio de consultas periódicas executadas em uma instância do SQL Server.
- SQLServerPerDBPeriodicQueries: contém pontos de dados coletados por meio de consultas periódicas executadas em até 30 bancos de dados em uma instância do SQL Server.
- SQLServerOneSettingsException: contém mensagens de exceção relacionadas à atualização do esquema e/ou do conjunto de consultas.
- DigitalProductID: contém pontos de dados para agregar IDs de produtos digitais com hash (SHA-256) anônimos de instâncias do SQL Server.
Exemplos de arquivos da auditoria local
Abaixo, temos um trecho de uma saída de arquivo JSON da auditoria local.
[
{
"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
}
]
Perguntas frequentes
Como os DBAs leem os arquivos de log da auditoria local? Esses arquivos de log são gravados no formato JSON. Cada linha será um objeto JSON que representa um trecho de dados de diagnóstico/uso carregado para a Microsoft. Os nomes dos campos devem ser autoexplicativos.
O que acontece se o DBA desabilitar a coleta de dados de diagnóstico e uso? Nenhum arquivo da auditoria local será gravado.
O que acontece se não houver conectividade com a internet/o computador estiver protegido pelo firewall? Os dados de diagnóstico e uso do SQL Server não serão enviados à Microsoft. Ele ainda tentará gravar os logs de auditoria local, se estiver configurado corretamente.
Como os DBAs desabilitam a auditoria local? Remova a entrada da chave do registro UserRequestedLocalAuditDirectory.
Quem pode ler os arquivos de log da auditoria local? Qualquer pessoa em sua organização que tiver acesso ao Diretório da auditoria local.
Como os DBAs gerenciam os arquivos de log gravados no diretório designado? Os DBAs precisarão gerenciar automaticamente a limpeza de arquivos no diretório para evitar o consumo de muito espaço em disco.
Há um cliente ou ferramenta que posso usar para ler esta saída JSON? A saída pode ser lida com o Bloco de notas, o Visual Studio ou qualquer leitor JSON de sua escolha. Como alternativa, você pode ler o arquivo JSON e analisar os dados em uma instância do SQL Server, conforme ilustrado abaixo. Para obter mais detalhes sobre como ler o arquivo JSON no SQL Server, visite Importing JSON files into SQL Server using OPENROWSET (BULK) and OPENJSON (Transact-SQL)(Importar arquivos JSON para o SQL Server usando 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'
Confira também
Auditoria local para coleta de dados de diagnóstico e uso do SSMS