MS SQL Server - Таблица Sysobject базы данных отсутствуют разрешения?
Я собираюсь решить проблему, которая остро стоит, и я провела последний день безуспешно. У меня есть сервер базы данных под управлением SQL Server 2008, одна база данных и одна хранимая процедура.
Логика хранимой процедуры содержит следующее предложение:
IF EXISTS
(
SELECT *
FROM dbo.sysobjects
WHERE id = OBJECT_ID( '<StoredProcedureNameHere>' )
AND OBJECTPROPERTY( id, N'IsProcedure' ) = 1
)
BEGIN
-- Do something here
END
Теперь вопрос:
Если я запускаю запрос из сценария Management Studio для выполнения хранимой процедуры, которая расследуется, она работает правильно и выполняет логику "- Сделай что-то здесь". Однако точно такая же хранимая процедура, вызываемая из веб-службы, НЕ работает. Я отключил проверку всего блока IF EXISTS(---), и полученная информация является правильной.
Мой предварительный вывод заключается в том, что должны быть какие-либо настройки разрешений (о которых я, очевидно, не знаю), настроенные для моей учетной записи пользователя в базе данных (и, следовательно, в таблице sysobject), позволяющие мне успешно получать информацию, которая НЕ находится вместо учетной записи пользователя. используется веб-сервисом для доступа к базе данных.
Кто-нибудь знает какие-либо стандартные настройки, которые я должен проверить, чтобы это работало?
Подсказка - компоненты базы данных и веб-службы работали отлично. Все такого рода проблемы начали возникать сразу после сбоя сервера базы данных, и операционным командам нужно было перестроить сервер базы данных. Отвечая на вопрос о состоянии баз данных, они сказали, что могут сделать резервную копию базы данных, и они должны работать как восстановленные сразу после сборки нового сервера.
Любая помощь будет принята с благодарностью.
Спасибо,
1 ответ
К счастью, проблема была устранена после того, как команда разработчиков выяснила, что конфигурация для учетной записи домена, используемой веб-службой, неверна. Пару дней в поисках чего-то, что не должно вызывать проблем, если вики-страница Config будет следовать шаг за шагом (все жалуются, когда нет документов, но когда они доступны, они вообще не используются).
В любом случае, если у вас возникла та же проблема, убедитесь, что информация о пользователе имеет достаточные привилегии для выполнения хранимой процедуры.
Надеюсь, это поможет кому-то еще.
Спасибо,