it-swarm.asia

Apakah ada risiko untuk memberikan izin kepada pengguna SQL Server SHOWPLAN?

Saya sedang melakukan beberapa tuning kinerja pada database SQL server 2008 besar, dan grup TI tidak mau memberikan izin SHOWPLAN. Di masa lalu, "Tampilkan Rencana Eksekusi" telah menjadi cara paling efektif untuk memahami kinerja dari setiap pertanyaan dan prosedur.

Risiko apa yang melekat pada pemberian izin ini? Apakah ada justifikasi yang sah untuk pembatasan ini pada salinan pengembangan database?

Catatan: Grup IT SQL ini memiliki 200+ basis data dalam satu contoh SQL Server. Terima kasih.

Jawab: Saya menganggap tidak adanya respons yang berarti bahwa tidak ada risiko keamanan yang signifikan, selain yang disebutkan di bawah ini. Pada dasarnya, membatasi ini pada database pengembangan adalah kontraproduktif.

Saya akan memperbarui ini jika ada yang memberikan jawaban yang lebih baik. Terima kasih atas komentar Anda!

23
RaoulRubin

Lihatlah Keamanan Showplan di Buku Daring, yang mengatakan:

Pengguna yang memiliki SHOWPLAN, ALTER TRACE, atau VIEW SERVER STATE izin dapat melihat kueri yang ditangkap dalam output Showplan. Pertanyaan ini mungkin berisi informasi sensitif seperti kata sandi. Karenanya, kami sarankan Anda hanya memberikan izin ini kepada pengguna yang berwenang untuk melihat informasi sensitif, seperti anggota db_owner peran basis data tetap, atau anggota dari peran server tetap sysadmin . Kami juga menyarankan Anda hanya menyimpan file Showplan atau melacak file yang berisi peristiwa terkait Showplan ke lokasi yang menggunakan sistem file NTFS, dan bahwa Anda membatasi akses ke pengguna yang berwenang untuk melihat informasi sensitif.

Misalnya, pertimbangkan permintaan berikut:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

Jika pengguna jahat menghasilkan output Showplan untuk serangkaian pertanyaan seperti contoh ini, dan mengganti nilai "10" dalam predikat dengan konstanta yang berbeda setiap kali, pengguna dapat menyimpulkan perkiraan distribusi data nilai kolom untuk kolom_1 di table_1 dengan membaca perkiraan jumlah baris.

Risiko ini memang tampak dapat diabaikan, terutama mengingat ini adalah server pengembangan, di mana semua kueri akan dari devs dan orang-orang IT, bukan pengguna.

19
user5094