Нет строк в MSDB.dbo.sysmail_faileditems - PullRequest
3 голосов
/ 10 сентября 2010

Изначально я получал сообщение об ошибке «Нет привилегии SELECT» при попытке запросить содержимое для отчета, который мне нужно создать. Поэтому мы предоставили DatabaseMailUserRole в MSDB моей учетной записи - я вижу столбцы, но ни одна из данных, о которых мы знаем, не существует.

Чего мне не хватает, что нужно сделать, чтобы мой аккаунт увидел данные?

Ответы [ 2 ]

6 голосов
/ 10 сентября 2010
select OBJECT_DEFINITION(OBJECT_id('sysmail_faileditems')) 
AS [processing-instruction(x)] FOR XML PATH('')

Показывает sysmail_faileditems определение

SELECT * FROM msdb.dbo.sysmail_allitems WHERE sent_status = 'failed'

Глядя на sysmail_allitems.Это определение

SELECT ...
FROM msdb.dbo.sysmail_mailitems
WHERE (send_request_user = SUSER_SNAME()) 
      OR (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) = 1)

Похоже, вам нужно быть в роли системного администратора, чтобы увидеть все результаты, или отправляющего пользователя, чтобы увидеть отфильтрованные результаты.

0 голосов
/ 10 сентября 2010

Возможно, вы смотрите не на ту версию таблицы. Таблицы могут быть созданы под разными именами пользователей. поэтому database.dbo.mytable отличается от database.klowrey.mytable.

Найдите свою таблицу в обозревателе объектов. Посмотрите, есть ли две таблицы с одинаковыми именами под разными пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...