Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Managed Instance
A API de Avaliação do SQL fornece um mecanismo para avaliar a configuração do seu SQL Server para práticas recomendadas. A API é fornecida com um conjunto de regras contendo regras de práticas recomendadas sugeridas pela equipe do SQL Server. Esse conjunto de regras é aprimorado com o lançamento de novas versões, mas, ao mesmo tempo, a API é criada para fornecer uma solução altamente personalizável e extensível. Os usuários podem ajustar as regras padrão e criar suas próprias.
A API de Avaliação do SQL é útil quando você deseja garantir que sua configuração do SQL Server esteja de acordo com as práticas recomendadas recomendadas. Após uma avaliação inicial, a estabilidade da configuração pode ser controlada por avaliações agendadas regularmente.
A API pode ser usada para avaliar:
- SQL Server em Máquinas Virtuais do Azure
- Azure SQL Managed Instance
- SQL Server 2012 e superior
- SQL Server em sistemas e contêineres baseados em Linux
Observação
A API de Avaliação SQL fornece avaliação em várias áreas, mas não se aprofunda na segurança. Use a avaliação de vulnerabilidades para SQL Server para melhorar proativamente a segurança da sua base de dados.
Regras
As regras (às vezes chamadas de cheques) são definidas em arquivos formatados JSON. O formato do conjunto de regras requer que um nome e uma versão do conjunto de regras sejam especificados. Ao usar conjuntos de regras personalizados, você pode saber facilmente quais recomendações vêm de qual conjunto de regras.
O conjunto de regras fornecido pela Microsoft está disponível no GitHub. Você pode visualizar todo o conjunto de regras no repositório de amostras .
Cmdlets de Avaliação SQL e extensões associadas
Use a API diretamente
A API de Avaliação SQL está disponível e pode ser usada por meio de código gerenciado como parte de qualquer um destes componentes:
- SQL Server Management Objects (SMO) (versão de lançamento a partir de julho de 2019 e posterior)
- Módulo SQL Server PowerShell (versão de lançamento a partir de julho de 2019 e posterior)
Antes de começar a usar a própria API de Avaliação do SQL, certifique-se de instalar um destes:
O SMO Framework é complementado pela extensão da API de Avaliação SQL que fornece os seguintes métodos:
-
GetAssessmentItems: Retorna verificações disponíveis para um objeto SQL específico (IEnumerable<...>) -
GetAssessmentResults: Avalia a avaliação de forma síncrona e retorna resultados e erros, se houver (IEnumerable<...>) -
GetAssessmentResultsList: Avalia a avaliação de forma assíncrona e retorna resultados e erros, se houver (Task<...>)
Utilizar a API através do PowerShell
Se quiser invocar a API de Avaliação do SQL por meio do PowerShell, instale o módulo SQL Server PowerShell. O SqlServer módulo fornece dois cmdlets que funcionam com a API de Avaliação SQL:
-
Get-SqlAssessmentItem: Fornece uma lista de verificações de avaliação disponíveis para um objeto do SQL Server -
Invoke-SqlAssessment: Fornece os resultados de uma avaliação
Introdução ao uso de cmdlets de Avaliação SQL
Uma avaliação é executada em relação a um objeto escolhido do SQL Server. No conjunto de regras padrão, há verificações apenas para dois tipos de objetos: Server e Database (além deles, a API suporta mais dois tipos: Filegroup e AvailabilityGroup). Se quiser avaliar uma instância do SQL Server e todos os seus bancos de dados, execute os cmdlets de Avaliação do SQL para cada objeto separadamente. Ou, você pode passar objetos para avaliação para os cmdlets de Avaliação SQL em uma variável ou no pipeline.
Os objetos SqlServer e RegisteredServer são intercambiáveis, podendo passar qualquer um para os cmdlets de Avaliação SQL.
Percorra os exemplos a seguir para começar.
Obtenha uma lista de verificações disponíveis para uma instância padrão local para se familiarizar com as verificações. Neste exemplo, estamos a canalizar a saída do cmdlet
Get-SqlInstancepara o cmdletGet-SqlAssessmentItemde modo a passar o objeto de instância para ele.Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItemObtenha uma lista de verificações disponíveis para todos os bancos de dados da instância. Aqui, estamos usando o
Get-Itemcmdlet e um caminho implementado com o provedor do SQL Server do Windows PowerShell para obter uma lista dos bancos de dados e, em seguida, canalizá-la para oGet-SqlDatabasecmdlet.Get-Item SQLSERVER:\SQL\localhost\default | Get-SqlAssessmentItemAlém disso, você pode usar o
Get-SqlDatabasecmdlet para fazer o mesmo.Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItemInvoque a avaliação para a instância e salve os resultados em uma tabela do SQL Server. Neste exemplo, estamos a canalizar a saída do cmdlet `
Get-SqlInstance` para o cmdlet `Invoke-SqlAssessment`, e os resultados são canalizados para o cmdlet `Write-SqlTableData`. OInvoke-Assessmentcmdlet é executado com o-FlattenOutputparâmetro neste exemplo. Esse parâmetro torna a saída adequada para oWrite-SqlTableDatacmdlet. Este último gera um erro se você omitir o parâmetro.Get-SqlInstance -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -ForceAgora vamos invocar uma avaliação para todos os bancos de dados da instância e adicionar os resultados à mesma tabela.
Get-SqlDatabase -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -ForceSiga as descrições e links na tabela para entender melhor as recomendações.
Personalize as regras com base em seu ambiente e requisitos organizacionais (veja abaixo).
Agende uma tarefa ou um trabalho para executar a avaliação regularmente ou sob demanda para medir o progresso.
Personalizar regras
As regras são projetadas para serem personalizáveis e extensíveis. O conjunto de regras da Microsoft foi projetado para funcionar na maioria dos ambientes. No entanto, é impossível ter um conjunto de regras que funcione para cada ambiente. Os usuários podem escrever seus próprios arquivos JSON e personalizar regras existentes ou adicionar novas. Exemplos de personalização e conjunto de regras completo lançado pela Microsoft estão disponíveis no repositório de exemplos. Para obter mais detalhes sobre como executar os cmdlets de Avaliação SQL com arquivos JSON personalizados, use o Get-Help cmdlet.
Opções disponíveis com recurso de personalização de regras
Ativar/desativar determinadas regras ou grupos de regras (usando tags)
Você pode silenciar regras específicas quando elas não forem aplicadas ao seu ambiente ou até que o trabalho agendado seja concluído para corrigir o problema.
Alterar parâmetros de limite
Regras específicas têm limites que são comparados com o valor atual de uma métrica para descobrir um problema. Se os limites padrão não se ajustarem, você poderá alterá-los.
Adicionar mais regras escritas por si ou por terceiros
Você pode combinar conjuntos de regras adicionando um ou mais arquivos JSON como parâmetros à sua chamada à API de Avaliação SQL. Sua organização pode escrever esses arquivos ou obtê-los de terceiros. Por exemplo, você pode ter seu arquivo JSON que desabilita regras específicas do conjunto de regras da Microsoft e outro arquivo JSON de um especialista do setor que inclua regras que você considera úteis para seu ambiente, seguido por outro arquivo JSON que altera alguns valores de limite nesse arquivo JSON.
Importante
Pedimos que você não use conjuntos de regras que vêm de fontes não confiáveis, até que você os revise completamente para se certificar de que eles são seguros.