API Penilaian SQL
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru Azure SQL Managed Instance SQL Server di Azure Virtual Machines SQL Server di Linux
SQL Assessment API menyediakan mekanisme untuk mengevaluasi konfigurasi SQL Server Anda untuk praktik terbaik. API dikirimkan dengan set aturan yang berisi aturan praktik terbaik yang disarankan oleh tim SQL Server. Set aturan ini ditingkatkan dengan rilis versi baru, tetapi pada saat yang sama, API dibangun untuk memberikan solusi yang sangat dapat disesuaikan dan dapat diperluas. Pengguna dapat menyetel aturan default dan membuat aturan mereka sendiri.
SQL Assessment API berguna ketika Anda ingin memastikan konfigurasi SQL Server Anda sejalan dengan praktik terbaik yang direkomendasikan. Setelah penilaian awal, stabilitas konfigurasi dapat dilacak oleh penilaian yang dijadwalkan secara teratur.
API dapat digunakan untuk menilai:
SQL Server di Azure Virtual Machines
Instans Terkelola Azure SQL
SQL Server 2012 dan yang lebih tinggi
SQL Server pada sistem dan kontainer berbasis Linux
API juga digunakan oleh Ekstensi Penilaian SQL Server untuk Azure Data Studio (ADS).
Catatan
SQL Assessment API memberikan penilaian pada berbagai area, tetapi tidak masuk ke dalam keamanan. Kami sarankan Anda menggunakan Penilaian Kerentanan SQL untuk secara proaktif meningkatkan keamanan database Anda.
Aturan
Aturan (terkadang disebut sebagai pemeriksaan) didefinisikan dalam file berformat JSON. Format ruleset memerlukan nama dan versi ruleset untuk ditentukan. Saat Anda menggunakan set aturan kustom, Anda dapat dengan mudah mengetahui rekomendasi mana dari kumpulan aturan apa yang datang.
Ruleset yang dikirim Microsoft tersedia di GitHub. Anda dapat melihat seluruh set aturan di repositori sampel.
Cmdlet Penilaian SQL dan ekstensi terkait
Gunakan API secara langsung
SQL Assessment API tersedia dan dapat digunakan melalui kode terkelola sebagai bagian dari salah satu komponen ini:
-
Versi rilis per Juni 2020 dan yang lebih tinggi.
Objek Manajemen SQL Server (SMO)
Versi rilis per Juli 2019 dan yang lebih tinggi.
-
Versi rilis per Juli 2019 dan yang lebih tinggi.
Sebelum Anda mulai menggunakan API Penilaian SQL itu sendiri, pastikan untuk menginstal salah satu dari ini:
Kerangka Kerja SMO dilengkapi dengan ekstensi SQL Assessment API yang menyediakan metode berikut:
GetAssessmentItems
: Mengembalikan pemeriksaan yang tersedia untuk objek SQL tertentu (IEnumerable<...>
)GetAssessmentResults
: Secara sinkron mengevaluasi penilaian dan mengembalikan hasil dan kesalahan jika ada (IEnumerable<...>
)GetAssessmentResultsList
: Secara asinkron mengevaluasi penilaian dan mengembalikan hasil dan kesalahan jika ada (Task<...>
)
Menggunakan API melalui PowerShell
Jika Anda ingin memanggil SQL Assessment API melalui PowerShell, Anda harus menginstal modul PowerShell SQL Server. Modul ini SqlServer
menyediakan dua cmdlet yang berfungsi dengan API Penilaian SQL:
Get-SqlAssessmentItem
: Menyediakan daftar pemeriksaan penilaian yang tersedia untuk objek SQL ServerInvoke-SqlAssessment
: Memberikan hasil penilaian
Mulai menggunakan cmdlet Penilaian SQL
Penilaian dilakukan terhadap objek SQL Server yang dipilih. Dalam seperangkat aturan default, ada pemeriksaan untuk dua jenis objek saja: Server
dan Database
(selain itu, API mendukung dua jenis lagi: Filegroup
dan AvailabilityGroup
). Jika Anda ingin menilai instans SQL Server dan semua databasenya, Anda harus menjalankan cmdlet Penilaian SQL untuk setiap objek secara terpisah. Atau, Anda dapat meneruskan objek untuk penilaian ke cmdlet Penilaian SQL dalam variabel atau alur.
SqlServer
dan RegisteredServer
objek dapat dipertukarkan, sehingga Anda dapat meneruskan apa pun ke cmdlet Penilaian SQL.
Lihat contoh berikut untuk memulai.
Dapatkan daftar pemeriksaan yang tersedia untuk instans default lokal untuk membiasakan diri dengan pemeriksaan. Dalam contoh ini, kita mempipa output
Get-SqlInstance
cmdlet keGet-SqlAssessmentItem
cmdlet untuk meneruskan objek instans ke dalamnya.Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem
Dapatkan daftar pemeriksaan yang tersedia untuk semua database instans. Di sini, kita menggunakan
Get-Item
cmdlet dan jalur yang diimplementasikan dengan penyedia Windows PowerShell SQL Server untuk mendapatkan daftar database, lalu mempipanya keGet-SqlDatabase
cmdlet.Get-Item SQLSERVER:\SQL\localhost\default | Get-SqlAssessmentItem
Selain itu
Get-SqlDatabase
, Anda dapat menggunakan cmdlet untuk melakukan hal yang sama.Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItem
Panggil penilaian untuk instans dan simpan hasilnya ke tabel SQL Server. Dalam contoh ini, kita membajak output
Get-SqlInstance
cmdlet keInvoke-SqlAssessment
cmdlet, yang hasilnya disalurkan keWrite-SqlTableData
cmdlet.Invoke-Assessment
Cmdlet dijalankan dengan-FlattenOutput
parameter dalam contoh ini. Parameter ini membuat output cocok untukWrite-SqlTableData
cmdlet. Yang terakhir menimbulkan kesalahan jika Anda menghilangkan parameter.Get-SqlInstance -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
Sekarang mari kita panggil penilaian untuk semua database instans dan tambahkan hasilnya ke tabel yang sama.
Get-SqlDatabase -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
Ikuti deskripsi dan tautan dalam tabel untuk lebih memahami rekomendasi.
Sesuaikan aturan berdasarkan persyaratan lingkungan dan organisasi Anda (lihat di bawah).
Jadwalkan tugas atau pekerjaan untuk menjalankan penilaian secara teratur atau sesuai permintaan untuk mengukur kemajuan.
Mengkustomisasi aturan
Aturan dirancang agar dapat disesuaikan dan dapat diperluas. Set aturan Microsoft dirancang untuk bekerja untuk sebagian besar lingkungan. Namun, tidak mungkin memiliki satu set aturan yang berfungsi untuk setiap lingkungan. Pengguna dapat menulis file JSON mereka sendiri dan menyesuaikan aturan yang ada atau menambahkan yang baru. Contoh kustomisasi dan kumpulan aturan yang dirilis Microsoft lengkap tersedia di repositori sampel. Untuk detail selengkapnya tentang cara menjalankan cmdlet Penilaian SQL dengan file JSON kustom, gunakan Get-Help
cmdlet .
Opsi yang tersedia dengan fitur kustomisasi aturan
Mengaktifkan/menonaktifkan aturan atau grup aturan tertentu (menggunakan tag)
Anda dapat membungkam aturan tertentu saat aturan tersebut tidak diterapkan ke lingkungan Anda, atau hingga pekerjaan terjadwal selesai untuk memperbaiki masalah.
Mengubah parameter ambang batas
Aturan tertentu memiliki ambang batas yang dibandingkan dengan nilai metrik saat ini untuk mengetahui masalah. Jika ambang default tidak cocok, Anda dapat mengubahnya.
Menambahkan lebih banyak aturan yang ditulis oleh Anda atau pihak ketiga
Anda dapat menggabungkan set aturan dengan menambahkan satu atau beberapa file JSON sebagai parameter ke panggilan API Penilaian SQL Anda. Organisasi Anda mungkin menulis file-file tersebut atau mendapatkannya dari pihak ketiga. Misalnya, Anda dapat memiliki file JSON yang menonaktifkan aturan tertentu dari kumpulan aturan Microsoft, dan file JSON lain oleh pakar industri yang menyertakan aturan yang menurut Anda berguna untuk lingkungan Anda, diikuti oleh file JSON lain yang mengubah beberapa nilai ambang dalam file JSON tersebut.
Penting
Kami mengimbau Anda untuk tidak menggunakan set aturan yang berasal dari sumber yang tidak tepercaya, sampai Anda meninjaunya secara menyeluruh untuk memastikannya aman.