Какова минимальная роль SQL Server, позволяющая создавать/удалять триггеры?

StackOverflow https://stackoverflow.com/questions/1221296

Вопрос

Предварительное условие:

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

Проблема:

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

Вопросы:

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

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top