Published on

December 5, 2017

Понимание разрешений SQL Server для расширенных событий

Расширенные события – это мощная функция в 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. Метод 1: Реализуйте решение, которое включает доверенные базы данных, представления и учетные записи. Этот метод требует высокой управленческой нагрузки, но обеспечивает безопасное решение. Более подробную информацию об этом методе можно найти в статье Аарона Бертранда.
  2. Метод 2: Сохраните данные событий в файл и работайте с пользователем, которому необходим доступ для просмотра данных. Создайте соответствующий сеанс XE, который захватывает только необходимую информацию, и передайте файлы событий на отдельный сервер, где у пользователя есть повышенный доступ. Этот метод требует меньше управления и поддержки по сравнению с методом 1.
  3. Метод 3: Предоставьте пользователю конкретный доступ для чтения данных из конкретной таблицы в конкретной базе данных. Настройте автоматизированный процесс для выгрузки данных в эту таблицу или загрузите их вручную для пользователя. Этот метод обеспечивает ограниченные разрешения и область применения.

Важно помнить, что эти обходные пути не являются хаками или способами нарушения доверия. Они являются методами, которые помогают мыслить нестандартно и работать вместе как сплоченная команда, чтобы обеспечить необходимый доступ при сохранении безопасности.

В заключение, понимание разрешений, необходимых для Extended Events в SQL Server, является важным для эффективного использования этой мощной функции. Исследуя различия между разрешениями Profiler и Extended Events и реализуя соответствующие обходные пути, вы можете повысить эффективность и сотрудничество в вашей команде.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.