Проблема с разрешениями хранимых процедур - PullRequest
0 голосов
/ 26 мая 2010

Я перенес набор баз данных SQL 2000 в SQL 2008. Большинство работает нормально, однако у меня есть некоторые хранимые процедуры, которые запланированы и выполняются заданиями агента SQL Server, которые доставляют мне проблемы. Многие из запланированных хранимых процедур работают, но хранимые процедуры, которые обращаются к базе данных, отличной от баз данных по умолчанию, завершаются сбоем со следующим сообщением:

Выполнено от имени пользователя: XYZ \ YadaYada. Участник сервера: «XYZ \ YadaYada» не может получить доступ к базе данных «MyOtherDatabaseOnSameServer» в текущем контексте безопасности. [SQL STATE 08004] (ошибка 619) Шаг не выполнен.

Очевидно, я изменил имена, чтобы защитить виновных.

Учетная запись является пользователем во всех соответствующих базах данных и является членом db_owner, db_datareader и db_datawriter.

Когда я запускаю эти же процедуры из окна запроса в SMS с использованием одних и тех же учетных записей (я пробовал много), они работают нормально.

Чего мне не хватает?

Ответы [ 3 ]

0 голосов
/ 26 мая 2010

Это похоже на проблему цепочки владения несколькими базами данных.

Проверьте, что:

  • сервер SQL допускает цепочку владения несколькими базами данных
  • для каждой базы данных включена цепочка владения несколькими базами данных.
  • Пользователь XYZ \ YadaYada является зарегистрированным пользователем MyOtherDatabaseOnSameServer.
  • Владелец хранимых процедур совпадает с владельцем объектов, хранящихся в MyOtherDatabaseOnSameServer.

Надеюсь, это поможет.

0 голосов
/ 26 мая 2010

Когда вы мигрировали пользователей, вы снова настраивали пользователей или просто брали то, что у них было, из операции восстановления / присоединения?

Вам может потребоваться запустить exec sp_change_users_login 'Auto_Fix', '<username>' в рассматриваемых базах данных, где <username> - фактическое имя пользователя.

0 голосов
/ 26 мая 2010

вещей, на которые вы можете взглянуть:

  • кто является владельцем работы?
  • под каким пользователем работает пользователь sql-agent?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...