Может ли роль приложения SQL Server вызывать DBCC DBREINDEX? - PullRequest
0 голосов
/ 11 июня 2009

У меня есть приложение, которое использует роль приложения SQL Server на стороне базы данных. Во время одного из процессов приложения он мне нужен для переиндексации таблицы, однако я сталкиваюсь с проблемами, потому что очевидно, что роль приложения не имеет разрешений для запуска команды DBCC DBREINDEX. Вы знаете способ включить это?

Вот ошибка, которую мы видим. Любой совет будет оценен.

Пользователь ‘UserX’ не имеет разрешения на запуск DBCC DBREINDEX для объекта TableX ’.

Я знаю, что DBCC DBREINDEX устарела, но приложение работает с экземпляром SQL Server 2005, а база данных находится в режиме совместимости с SQL Server 2000. Поставщик приложения хочет сохранить базу данных в режиме совместимости с SQL Server 2000, поскольку некоторые из их запросов не работают в 2005 году. Поэтому, если быть точным, я получаю похожую ошибку при попытке выполнить инструкцию ALTER INDEX. *

Ошибка №: - 2147217900 - Не удается найти объект "dbo.TableX", так как он не существует или у вас нет разрешений.

1 Ответ

1 голос
/ 11 июня 2009

С БОЛ

Звонящий должен владеть столом или быть член фиксированного сервера sysadmin роль, фиксированная база данных db_owner роль или db_ddladmin фиксированная роль базы данных.

Изменить права. Вы можете использовать хранимый процесс для переноса DBCC и использовать EXECUTE AS для изменения контекста Или даже динамический SQL. Я не уверен, как это работает с ролями приложений и режимом совместимости, извините.

...