Пользователь (не я) в приложении вызывает функцию и получает ошибку:
Не удалось найти объект "ИмяБазы.ИмяТаблицы", так как он не существует или отсутствуют разрешения.
SQL:
CREATE UNIQUE CLUSTERED INDEX ИмяТаблицы ... WITH DROP_EXISTING
Моя учетная запись является членом роли роли
db_owner, и у меня эта функция отрабатывает нормально.
MS пишет:
Необходимо разрешение ALTER для таблицы или представления. Пользователь должен быть членом предопределенной роли сервера sysadmin или предопределенных ролей базы данных db_ddladmin и db_owner.
Не хотелось бы давать обычному пользователю такие обширные полномочия в рамках всей БД. Можно ли как-то разрешить создание индекса для конкретных таблиц? Или же создать какую-то хранимую процедуру, которую пользователь сможет вызывать, но которая будет выполняться с повышенными полномочиями (некий аналог sudo)?