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 menyempurnakan 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:

API juga digunakan oleh SQL Server Assessment Extension untuk Azure Data Studio (ADS).

Catatan

SQL Assessment API memberikan penilaian pada berbagai area, tetapi tidak masuk jauh 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. Ketika Anda menggunakan set aturan kustom, Anda dapat dengan mudah mengetahui rekomendasi mana dari set aturan apa yang datang.

Set aturan yang dikirim Microsoft tersedia di GitHub. Anda dapat melihat seluruh set aturan di repositori sampel.

Cmdlet Penilaian SQL dan ekstensi terkait

Menggunakan API secara langsung

SQL Assessment API tersedia dan dapat digunakan melalui kode terkelola sebagai bagian dari salah satu komponen ini:

Sebelum Anda mulai menggunakan SQL Assessment API 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 SQL Assessment API:

  • Get-SqlAssessmentItem: Menyediakan daftar pemeriksaan penilaian yang tersedia untuk objek SQL Server

  • Invoke-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.

  1. Dapatkan daftar pemeriksaan yang tersedia untuk instans default lokal untuk membiasakan diri dengan pemeriksaan. Dalam contoh ini, kita mempipa output Get-SqlInstance cmdlet ke Get-SqlAssessmentItem cmdlet untuk meneruskan objek instans ke dalamnya.

    Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  2. Dapatkan daftar pemeriksaan yang tersedia untuk semua database instans. Di sini, kami menggunakan Get-Item cmdlet dan jalur yang diimplementasikan dengan penyedia Windows PowerShell SQL Server untuk mendapatkan daftar database, lalu menyalurkannya ke Get-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
    
  3. Panggil penilaian untuk instans dan simpan hasilnya ke tabel SQL Server. Dalam contoh ini, kita menyalurkan output Get-SqlInstance cmdlet ke Invoke-SqlAssessment cmdlet, yang hasilnya disalurkan ke Write-SqlTableData cmdlet. Invoke-Assessment Cmdlet dijalankan dengan -FlattenOutput parameter dalam contoh ini. Parameter ini membuat output cocok untuk Write-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
    
  4. Ikuti deskripsi dan tautan dalam tabel untuk lebih memahami rekomendasi.

  5. Sesuaikan aturan berdasarkan lingkungan dan persyaratan organisasi Anda (lihat di bawah).

  6. 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 untuk 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 penyesuaian dan kumpulan aturan lengkap yang dirilis Microsoft 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 dilakukan untuk memperbaiki masalah.

Mengubah parameter ambang

Aturan tertentu memiliki ambang yang dibandingkan dengan nilai metrik saat ini untuk mengetahui masalah. Jika ambang default tidak sesuai, 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 set 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 batas 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.

Langkah berikutnya