Mengenai implikasi kinerja, saya tidak mengetahui adanya hal ini atau izin lainnya.
Mengenai:
Apa yang bisa mereka lakukan yang seharusnya tidak boleh mereka lakukan
Sederhananya, mereka dapat melihat hal-hal yang mungkin tidak seharusnya mereka lihat. Dan jangan pikirkan ini hanya dalam hal SQL Server. Izin khusus ini juga mengatur DMV seperti sys.dm_os_sys_info dan beberapa lainnya yang memberikan wawasan tentang mesin host (perangkat keras, layanan, dll). Anda tidak selalu tahu info apa yang dapat digunakan untuk melawan Anda. Dan, bahkan jika Anda setuju dengan seseorang yang melihat segala sesuatu diizinkan oleh izin ini sekarang, kadang-kadang DMV ditambahkan dalam Paket Layanan / Pembaruan Kumulatif, dan jadi mungkin sepotong informasi baru terekspos yang tidak Anda sadari.
Saya tidak dapat menemukan panduan tentang cara mengevaluasi apakah itu HARUS diberikan atau tidak.
Karena Anda telah menyebutkan memberi orang izin minimum yang diperlukan, apa yang sebenarnya terjadi adalah: apakah seseorang memerlukan izin ini untuk penggunaan ad hoc ? Artinya, apakah seseorang membutuhkan fleksibilitas untuk mengajukan pertanyaan mereka sendiri? Apakah membuat satu atau lebih prosedur tersimpan dan / atau TVF multi-pernyataan berfungsi? Jika demikian, maka Anda tidak perlu memberikan izin kepada pengguna mana pun (yang kemudian bebas untuk apa pun yang diizinkan oleh izin itu), dan sebaliknya Anda memberikan izin pada kode (yang hanya melakukan apa yang dikodekan untuk dikerjakan). Penandatanganan Modul adalah bagaimana Anda mencapai ini. Konsep umum adalah:
- Buat prosedur tersimpan dan / atau TVF multi-pernyataan untuk melakukan tindakan yang diinginkan.
- Berikan
EXECUTEmodul-modul ini kepada pengguna dan / atau peran apa pun yang diperlukan untuk melakukan tindakan ini
- Buat sertifikat
- Tanda tangani modul menggunakan sertifikat itu (menggunakan
ADD SIGNATURE)
- Salin sertifikat ke
[master]database (mis. Buat sertifikat [master]menggunakan kunci publik dari sertifikat yang digunakan untuk menandatangani modul).
- Buat login dari sertifikat yang disalin
[master]
- Berikan izin tingkat instance apa pun yang diperlukan untuk login berbasis sertifikat itu (yang dapat mencakup menambahkannya ke peran tingkat instance).
Untuk beberapa contoh, silakan lihat:
sys.dm_db_missing_index_details) dan mereka ingin tahu apa risiko sebenarnya dari melakukannya.