Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Interfejs API oceny SQL udostępnia mechanizm oceny konfiguracji programu SQL Server w celu uzyskania najlepszych rozwiązań. API jest dostarczane z zestawem reguł zawierającym zasady najlepszych praktyk sugerowanych przez zespół SQL Server. Ten zestaw reguł jest ulepszany wraz z wydaniem nowych wersji, ale jednocześnie API zostało zaprojektowane tak, by zapewnić wysoce konfigurowalne i rozszerzalne rozwiązanie. Użytkownicy mogą dostroić reguły domyślne i tworzyć własne.
Interfejs API oceny SQL jest przydatny, gdy chcesz upewnić się, że konfiguracja programu SQL Server jest zgodna z zalecanymi najlepszymi rozwiązaniami. Po wstępnej ocenie stabilność konfiguracji można śledzić według regularnych zaplanowanych ocen.
Interfejs API może służyć do oceny:
- Program SQL Server na maszynach wirtualnych platformy Azure
- Azure SQL Managed Instance
- SQL Server 2012 i nowsze
- Program SQL Server w systemach i kontenerach opartych na systemie Linux
Uwaga / Notatka
Interfejs API SQL Assessment umożliwia ocenę w wielu obszarach, ale nie obejmuje dogłębnie kwestii bezpieczeństwa. Użyj oceny luk w zabezpieczeniach dla programu SQL Server , aby aktywnie poprawić bezpieczeństwo bazy danych.
Reguły
Reguły (czasami nazywane sprawdzaniem) są definiowane w plikach sformatowanych w formacie JSON. Format zestawu reguł wymaga określenia nazwy i wersji zestawu reguł. Używając niestandardowych zestawów zasad, łatwo wiadomo, które rekomendacje z jakiego zestawu zasad pochodzą.
Zestaw reguł dostarczonych przez firmę Microsoft jest dostępny w witrynie GitHub. Można wyświetlić cały zestaw reguł w repozytorium przykładów .
Cmdlety oceniające SQL i powiązane rozszerzenia
Bezpośrednie używanie interfejsu API
Interfejs API oceny SQL jest dostępny i może być używany za pomocą kodu zarządzanego w ramach dowolnego z następujących składników:
- SQL Server Management Objects (SMO) (wersja wydana w lipcu 2019 r. i nowsze)
- Moduł SQL Server dla programu PowerShell (Wersja wydana z lipca 2019 r. i nowsza)
Przed rozpoczęciem korzystania z samego interfejsu API oceny SQL upewnij się, że zainstalowano jedną z następujących opcji:
- Instalowanie protokołu SMO
- Instalowanie modułu programu SQL Server PowerShell
- Instalowanie za pomocą narzędzia NuGet
Struktura SMO jest uzupełniana przez rozszerzenie interfejsu API oceny SQL, które udostępnia następujące metody:
-
GetAssessmentItems: Zwraca dostępne kontrole dla określonego obiektu SQL (IEnumerable<...>) -
GetAssessmentResults: Synchronicznie ocenia ocenę i zwraca wyniki i błędy, jeśli istnieją (IEnumerable<...>) -
GetAssessmentResultsList: Asynchronicznie ocenia ocenę i zwraca wyniki i błędy, jeśli istnieją (Task<...>)
Korzystanie z interfejsu API za pośrednictwem programu PowerShell
Jeśli chcesz wywołać interfejs API oceny SQL za pomocą programu PowerShell, musisz zainstalować moduł programu SQL Server PowerShell. Moduł SqlServer zawiera dwa cmdlety, które współpracują z interfejsem API oceny SQL.
-
Get-SqlAssessmentItem: Zawiera listę dostępnych testów oceny dla obiektu programu SQL Server -
Invoke-SqlAssessment: Dostarcza wyniki oceny
Rozpoczęcie pracy z poleceniami cmdletów do oceny SQL
Ocena jest przeprowadzana względem wybranego obiektu programu SQL Server. W domyślnym zestawie reguł kontrole są dostępne tylko dla dwóch typów obiektów: Server oraz Database (poza nimi interfejs API obsługuje jeszcze dwa typy: Filegroup oraz AvailabilityGroup). Jeśli chcesz ocenić wystąpienie programu SQL Server i wszystkie jego bazy danych, należy uruchomić polecenia cmdlet oceny SQL dla każdego obiektu oddzielnie. Można również przekazać obiekty do oceny do polecenia cmdlet SQL Assessment w zmiennej lub potoku.
Obiekty SqlServer i RegisteredServer można stosować zamiennie, dzięki czemu można przekazać dowolny z nich do poleceń cmdlet oceny SQL.
Zapoznaj się z poniższymi przykładami, aby rozpocząć pracę.
Uzyskaj listę dostępnych testów dla lokalnego domyślnego wystąpienia, aby się z nimi zapoznać. W tym przykładzie przekazujemy dane wyjściowe
Get-SqlInstancepolecenia cmdlet doGet-SqlAssessmentItempolecenia cmdlet, aby przekazać obiekt wystąpienia.Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItemPobierz listę dostępnych sprawdzeń dla wszystkich baz danych wystąpienia. W tym miejscu używamy polecenia cmdlet i ścieżki zaimplementowanej za pomocą dostawcy SQL Server dla programu Windows PowerShell, aby uzyskać listę baz danych, a następnie przesyłamy ją do polecenia cmdlet
Get-Item.Get-Item SQLSERVER:\SQL\localhost\default | Get-SqlAssessmentItemPonadto możesz użyć cmdletu
Get-SqlDatabase, aby wykonać to samo.Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItemWywołaj ocenę wystąpienia i zapisz wyniki w tabeli programu SQL Server. W tym przykładzie przekazujemy dane wyjściowe z polecenia cmdlet
Get-SqlInstancedo polecenia cmdletInvoke-SqlAssessment, którego wyniki są przesyłane dalej do polecenia cmdletWrite-SqlTableData. PolecenieInvoke-Assessmentcmdlet jest uruchamiane z parametrem-FlattenOutputw tym przykładzie. Ten parametr sprawia, że dane wyjściowe są odpowiednie dla cmdletWrite-SqlTableData. Ten ostatni zgłasza błąd, jeśli pominięto parametr.Get-SqlInstance -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -ForceTeraz wywołajmy ocenę dla wszystkich baz danych wystąpienia i dodajmy wyniki do tej samej tabeli.
Get-SqlDatabase -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -ForcePostępuj zgodnie z opisami i linkami w tabeli, aby lepiej zrozumieć zalecenia.
Dostosuj reguły na podstawie wymagań dotyczących środowiska i organizacji (zobacz poniżej).
Zaplanuj zadanie lub pracę, aby uruchamiać ocenę regularnie lub na żądanie w celu mierzenia postępu.
Dostosowywanie reguł
Reguły są zaprojektowane tak, aby można było dostosowywać i rozszerzać. Zestaw reguł Microsoft został zaprojektowany tak, aby działał w większości środowisk. Jednak niemożliwe jest, by jeden zestaw zasad działał dla każdego środowiska. Użytkownicy mogą pisać własne pliki JSON i dostosowywać istniejące reguły lub dodawać nowe. Przykłady personalizacji oraz kompletny zestaw reguł wydany przez Microsoft są dostępne w repozytorium próbek. Aby uzyskać więcej informacji na temat uruchamiania poleceń cmdlet oceny SQL z niestandardowymi plikami JSON, użyj polecenia Get-Help.
Opcje dostępne z funkcją dostosowywania reguły
Włączanie/wyłączanie niektórych reguł lub grup reguł (przy użyciu tagów)
Możesz wyciszyć określone reguły, gdy nie są stosowane do twojego środowiska lub do czasu wykonania zaplanowanej pracy w celu rozwiązania problemu.
Zmienianie parametrów progu
Określone reguły mają progi, które są porównywane z bieżącą wartością metryki w celu ustalenia problemu. Jeśli domyślne progi nie pasują, możesz je zmienić.
Dodawanie większej liczby reguł napisanych przez Ciebie lub innych firm
Zestawy reguł można łączyć, dodając co najmniej jeden plik JSON jako parametry do wywołania interfejsu API oceny SQL. Organizacja może zapisywać te pliki lub uzyskiwać je od innej firmy. Na przykład możesz mieć plik JSON, który wyłącza konkretne reguły z zestawu reguł Microsoft, oraz inny plik JSON od eksperta branżowego, zawierający reguły przydatne dla twojego środowiska, a następnie kolejny plik JSON, który zmienia niektóre wartości progowe w tym pliku JSON.
Ważne
Zachęcamy, aby nie używać zestawów reguł pochodzących z niezaufanych źródeł, dopóki nie sprawdzisz ich dokładnie, aby upewnić się, że są bezpieczne.