Щодо наслідків щодо продуктивності, я не знаю жодного для цього чи будь-якого іншого дозволу.
Щодо:
Що вони можуть зробити, що їм, можливо, не слід цього робити
Простіше кажучи, вони можуть бачити речі, які, можливо, не повинні бачити. І не думайте про це з точки зору просто SQL Server. Цей конкретний дозвіл також керує DMV, такими як sys.dm_os_sys_info та безліччю інших, що забезпечують розуміння хост-машини (обладнання, послуги тощо). Ви не завжди знаєте, яку інформацію можна використовувати проти вас. І навіть якщо ви не в порядку, коли хтось бачить усе, що дозволено цим дозволом зараз, іноді DMV додаються в пакети послуг / накопичувальні оновлення, і, можливо, нова інформація отримує інформацію, про яку ви не знаєте.
Я не можу знайти вказівки щодо того, як оцінити, чи БУДЬ дозволено це чи ні.
Оскільки ви вже згадали про надання людям мінімальних необхідних дозволів, що насправді зводиться до цього: чи потрібен хтось цей дозвіл для використання спеціальних програм ? Значить, комусь потрібна гнучкість придумувати власні запити? Чи може створити одну чи більше збережених процедур та / або багатовиразових телевізійних програм? Якщо так, то вам не потрібно надавати дозволи будь-якому користувачеві (який тоді вільний від будь-якого дозволеного цим дозволом), а натомість ви надаєте дозволи до коду (який робить лише те, що закодовано). Підписання модуля - це, як ви це зробите. Загальна концепція:
- Створіть збережені процедури (и) та / або мульти-операторські TVF (и) для виконання потрібних дій.
- Надайте
EXECUTEці модулі будь-якому користувачеві та / або ролям, необхідних для виконання цих дій
- Створіть сертифікат
- Підпишіть модуль (и), використовуючи цей сертифікат (використовуючи
ADD SIGNATURE)
- Скопіюйте сертифікат у
[master]базу даних (тобто створіть сертифікат, [master]використовуючи відкритий ключ сертифіката, який використовується для підпису модуля (модулів).
- Створіть логін із сертифіката, скопійованого в
[master]
- Надайте необхідні дозволи на рівні екземпляра для цього входу на основі сертифіката (який може включати додавання його до ролей рівня екземпляра).
Деякі приклади див .:
sys.dm_db_missing_index_details), і вони хочуть знати, які саме ризики пов'язані з цим.