SQL értékelő API

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Az SQL Assessment API egy olyan mechanizmust biztosít, amely kiértékeli az SQL Server konfigurációját az ajánlott eljárásokhoz. Az API egy olyan szabálykészlettel érkezik, amely a SQL Server csapata által javasolt legjobb gyakorlati szabályokat tartalmazza. Ezt a szabálykészletet az új verziók megjelenésével fejlesztik, de ugyanakkor az API úgy van kialakítva, hogy rendkívül testreszabható és bővíthető megoldást biztosítson. A felhasználók finomhangolhatják az alapértelmezett szabályokat, és létrehozhatják sajátjukat.

Az SQL Assessment API akkor hasznos, ha meg szeretné győződni arról, hogy az SQL Server konfigurációja összhangban van az ajánlott ajánlott eljárásokkal. A kezdeti értékelés után a konfiguráció stabilitása rendszeresen ütemezett értékelésekkel nyomon követhető.

Az API a következők kiértékelésére használható:

Megjegyzés:

Az SQL Assessment API számos területen nyújt értékelést, de nem foglalkozik mélyen a biztonsággal. Az SQL Server sebezhetőségi felmérésével proaktívan javíthatja az adatbázis biztonságát.

Szabályok

A szabályok (más néven ellenőrzések) JSON formátumú fájlokban vannak definiálva. A szabálykészlet formátumához szabálykészlet nevét és verzióját kell megadni. Ha egyedi szabálykészleteket használsz, könnyen tudhatod, melyik szabálykészletből mely ajánlások érkeznek.

A Microsoft kiszállított szabálykészlete elérhető a GitHubon. A teljes szabálykészletet megtekintheti a mintaadattárban.

SQL Assessment-parancsmagok és társított bővítmények

Az API közvetlen használata

Az SQL Assessment API elérhető, és felügyelt kódon keresztül használható az alábbi összetevők bármelyikének részeként:

Mielőtt elkezdené használni magát az SQL Assessment API-t, telepítse a következők valamelyikét:

Az SMO-keretrendszert az SQL Assessment API-bővítmény egészíti ki, amely a következő módszereket biztosítja:

  • GetAssessmentItems: Egy adott SQL-objektum elérhető ellenőrzését adja vissza (IEnumerable<...>)
  • GetAssessmentResults: Szinkron módon értékeli ki az értékelést, és az eredményeket és a hibákat adja vissza, ha vannak (IEnumerable<...>)
  • GetAssessmentResultsList: Aszinkron módon kiértékeli az értékelést, és eredményeket és hibákat ad vissza, ha vannak (Task<...>)

Az API használata a PowerShell-lel

Ha meg szeretné hívni az SQL Assessment API-t a PowerShell-lel, telepítenie kell az SQL Server PowerShell-modult. A SqlServer modul két parancsmagot biztosít, amelyek az SQL Assessment API-val működnek:

  • Get-SqlAssessmentItem: Egy SQL Server-objektum elérhető értékelési ellenőrzéseinek listáját tartalmazza
  • Invoke-SqlAssessment: Értékelés eredményeit adja meg

Az SQL Assessment-parancsmagok használatának első lépései

A rendszer kiértékelést végez egy kiválasztott SQL Server-objektumon. Az alapértelmezett szabályhalmazban csak kétféle objektumra van ellenőrzés: Server és Database (ezen kívül az API két további típust is támogat: Filegroup és AvailabilityGroup). Ha egy SQL Server-példányt és annak összes adatbázisát szeretné felmérni, minden objektumhoz külön kell futtatnia az SQL Assessment-parancsmagokat. Vagy átadhatja az értékeléshez szükséges objektumokat egy változó vagy folyamat SQL Assessment-parancsmagjainak.

SqlServer és RegisteredServer az objektumok felcserélhetők, így bármelyiket átadhatja az SQL Assessment-parancsmagoknak.

Első lépésként tekintse át az alábbi példákat.

  1. Lekérheti az elérhető ellenőrzések listáját egy helyi alapértelmezett példányhoz, hogy megismerkedjen az ellenőrzésekkel. Ebben a példában a Get-SqlInstance parancsmag kimenetét a Get-SqlAssessmentItem parancsmagnak továbbítjuk, hogy átadjuk neki a példányobjektumot.

    Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  2. Lekérheti a példány összes adatbázisához elérhető ellenőrzések listáját. Itt a parancsmagot és a Get-Item Windows PowerShell SQL Server szolgáltatóval implementált elérési utat használjuk az adatbázisok listájának lekéréséhez, majd a Get-SqlDatabase parancsmaghoz való pipáláshoz.

    Get-Item SQLSERVER:\SQL\localhost\default | Get-SqlAssessmentItem
    

    A parancsmaggal Get-SqlDatabase is ugyanezt teheti.

    Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  3. Hívja meg a példány értékelését, és mentse az eredményeket egy SQL Server-táblába. Ebben a példában a Get-SqlInstance parancsmag kimenetét a Invoke-SqlAssessment parancsmag felé továbbítjuk, az így kapott eredményeket pedig a Write-SqlTableData parancsmag felé. A Invoke-Assessment parancsmag a példában szereplő -FlattenOutput paraméterrel fut. Ez a paraméter alkalmassá teszi a kimenetet a Write-SqlTableData parancsmag számára. Az utóbbi hibát jelez, ha kihagyja a paramétert.

    Get-SqlInstance -ServerInstance 'localhost' |
    Invoke-SqlAssessment -FlattenOutput |
    Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
    

    Most hívjuk meg a példány összes adatbázisának értékelését, és adjunk hozzá az eredményeket ugyanahhoz a táblához.

    Get-SqlDatabase -ServerInstance 'localhost' |
    Invoke-SqlAssessment -FlattenOutput |
    Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
    
  4. A javaslatok további megértéséhez kövesse a táblázatban szereplő leírásokat és hivatkozásokat.

  5. Szabja testre a szabályokat a környezet és a szervezeti követelmények alapján (lásd alább).

  6. Ütemezzen egy feladatot vagy munkát az értékelés rendszeres vagy igény szerinti futtatásához a haladás nyomon követéséhez.

Szabályok testreszabása

A szabályok testreszabhatók és bővíthetőek. A Microsoft szabálykészlete a legtöbb környezethez úgy van tervezve. Azonban lehetetlen, hogy minden egyes környezethez egyetlen szabálykészlet működjön. A felhasználók saját JSON-fájlokat írhatnak, és testre szabhatják a meglévő szabályokat, vagy újakat adhatnak hozzá. A testreszabás és a teljes Microsoft által kiadott szabálykészlet példái elérhetők a mintatárban. Az SQL Assessment-parancsmagok egyéni JSON-fájlokkal való futtatásával kapcsolatos további részletekért használja a Get-Help parancsmagot.

A szabály testreszabási funkciójával elérhető beállítások

Bizonyos szabályok vagy szabálycsoportok engedélyezése/letiltása (címkék használatával)

Elnémíthat bizonyos szabályokat, ha azok nem vonatkoznak a környezetére, vagy amíg az ütemezett munkát el nem végzik a probléma elhárítására.

Küszöbérték paramétereinek módosítása

Az egyes szabályok küszöbértékei egy metrika aktuális értékével összehasonlítva derítik ki a problémát. Ha az alapértelmezett küszöbértékek nem férnek el, módosíthatja őket.

További, Ön vagy harmadik felek által írt szabályok hozzáadása

A szabálykészletek kombinálásához adjon hozzá egy vagy több JSON-fájlt paraméterként az SQL Assessment API-híváshoz. Előfordulhat, hogy a szervezet megírja ezeket a fájlokat, vagy harmadik féltől szerzi be őket. Például lehet egy JSON fájlod, amely letiltja a Microsoft szabálykészletéből származó bizonyos szabályokat, és egy másik iparági szakértő által készített JSON fájlt, amely olyan szabályokat tartalmaz, amelyeket hasznosnak találsz a környezetedben, majd egy másik JSON fájl, amely megváltoztatja a JSON fájl küszöbértékeit abban a JSON fájlban.

Fontos

Javasoljuk, hogy ne használjon nem megbízható forrásokból származó szabálykészleteket, amíg alaposan át nem vizsgálja őket, hogy biztosan biztonságban legyenek.