Расширенные события – это мощная функция в SQL Server, которая позволяет отслеживать и устранять проблемы на сервере. Однако многие пользователи часто путаются в разрешениях, необходимых для эффективного использования этой функции. В этой статье мы сравним и сопоставим разрешения, необходимые для Profiler и Extended Events, и рассмотрим некоторые обходные пути для управления разрешениями.
Разрешения Profiler
При использовании Profiler вам необходимо быть sysadmin, чтобы запустить сеанс Profiler. Это означает, что пользователи с ограниченным доступом, такие как стандартные учетные записи входа, столкнутся с ошибками разрешений при попытке запустить сеанс Profiler или Server Side trace.
Например, если вы попытаетесь запустить сеанс Profiler с ограниченной учетной записью входа, вы получите сообщение об ошибке, указывающее, что у вас нет разрешения на выполнение ‘SYS.TRACES’. Это ограничение может быть раздражающим для пользователей, которым необходимо отслеживать свой сервер, но у них нет привилегий sysadmin.
Разрешения Extended Events
С другой стороны, Extended Events предлагает более детальный подход к разрешениям. Хотя для выполнения различных задач требуются определенные разрешения, оно обеспечивает большую гибкость по сравнению с Profiler.
По умолчанию учетная запись входа с ограниченным доступом не будет иметь необходимых разрешений для запроса sys.traces или sys.dm_xe_objects. Однако, предоставив разрешение ALTER ANY EVENT SESSION, пользователи могут создавать сеанс событий через TSQL без причинения каких-либо проблем.
Важно отметить, что предоставление разрешения “Alter Any Event” не обеспечивает достаточных разрешений для просмотра данных сеанса или доступа к DMV или каталоговым представлениям. Для выполнения этих задач могут потребоваться дополнительные разрешения, такие как VIEW SERVER STATE.
Обходные пути
Если у вас есть пользователи, которым необходим доступ к Extended Events, но им не следует предоставлять полный доступ sysadmin, вы можете рассмотреть несколько обходных путей:
- Метод 1: Реализуйте решение, которое включает доверенные базы данных, представления и учетные записи. Этот метод требует высокой управленческой нагрузки, но обеспечивает безопасное решение. Более подробную информацию об этом методе можно найти в статье Аарона Бертранда.
- Метод 2: Сохраните данные событий в файл и работайте с пользователем, которому необходим доступ для просмотра данных. Создайте соответствующий сеанс XE, который захватывает только необходимую информацию, и передайте файлы событий на отдельный сервер, где у пользователя есть повышенный доступ. Этот метод требует меньше управления и поддержки по сравнению с методом 1.
- Метод 3: Предоставьте пользователю конкретный доступ для чтения данных из конкретной таблицы в конкретной базе данных. Настройте автоматизированный процесс для выгрузки данных в эту таблицу или загрузите их вручную для пользователя. Этот метод обеспечивает ограниченные разрешения и область применения.
Важно помнить, что эти обходные пути не являются хаками или способами нарушения доверия. Они являются методами, которые помогают мыслить нестандартно и работать вместе как сплоченная команда, чтобы обеспечить необходимый доступ при сохранении безопасности.
В заключение, понимание разрешений, необходимых для Extended Events в SQL Server, является важным для эффективного использования этой мощной функции. Исследуя различия между разрешениями Profiler и Extended Events и реализуя соответствующие обходные пути, вы можете повысить эффективность и сотрудничество в вашей команде.