Какая минимальная роль SQL Server позволяет создавать / удалять триггеры? - PullRequest
1 голос
/ 03 августа 2009

Необходимое условие:

Существует клиент-серверное приложение, написанное на Delphi32. СУБД - это SQL Server 2005. Для определенных функциональных возможностей приложения требуется создание / удаление триггеров (из приложения с помощью специальных операторов DDL) в целевой базе данных.

Проблема:

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

Вопросы:

  • Какова стандартная минимальная (то есть наиболее ограниченная) роль SQL Server, которую можно использовать для создания / удаления триггеров?
  • Будет ли создание нестандартной роли, а не использование стандартных, представлять собой более детальный подход к решению этой проблемы?

1 Ответ

3 голосов
/ 03 августа 2009

Существуют различные варианты в зависимости от области действия гранта (любой триггер в базе данных, любой в схеме или конкретной таблице).

Обычно разрешения, необходимые для операции SQL, описаны в справочнике по SQL. Например. для CREATE TRIGGER в SQL 2008 см. здесь (прокрутите вниз до «Разрешения»), в данном случае:

Для триггера DML требуется разрешение ALTER для таблицы или представления, для которого должен быть создан триггер

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...