@VasVovec

Как дать пользователю право выполнить CREATE INDEX?

Пользователь (не я) в приложении вызывает функцию и получает ошибку:
Не удалось найти объект "ИмяБазы.ИмяТаблицы", так как он не существует или отсутствуют разрешения.
SQL:
CREATE UNIQUE CLUSTERED INDEX ИмяТаблицы ... WITH DROP_EXISTING

Моя учетная запись является членом роли роли db_owner, и у меня эта функция отрабатывает нормально. MS пишет:
Необходимо разрешение ALTER для таблицы или представления. Пользователь должен быть членом предопределенной роли сервера sysadmin или предопределенных ролей базы данных db_ddladmin и db_owner.

Не хотелось бы давать обычному пользователю такие обширные полномочия в рамках всей БД. Можно ли как-то разрешить создание индекса для конкретных таблиц? Или же создать какую-то хранимую процедуру, которую пользователь сможет вызывать, но которая будет выполняться с повышенными полномочиями (некий аналог sudo)?
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы