2010-09-10 6 views
3

Initialement, j'obtenais une erreur «pas de privilège SELECT» lorsque j'essayais d'interroger le contenu d'un rapport que je devais créer. Donc, nous avons accordé DatabaseMailUserRole dans MSDB à mon compte - je vois des colonnes, mais aucune des données que nous savons exister.Aucune ligne dans MSDB.dbo.sysmail_faileditems

Que dois-je faire pour que mon compte puisse voir les données?

Répondre

6
select OBJECT_DEFINITION(OBJECT_id('sysmail_faileditems')) 
AS [processing-instruction(x)] FOR XML PATH('') 

Affiche sysmail_faileditems définition est

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

regardant sysmail_allitems. La définition de c'est

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

Il semble donc que vous devez être dans le rôle sysadmin pour voir tous les résultats ou l'utilisateur d'envoyer à voir des résultats filtrés.

+0

Je n'ai jamais essayé FOR XML pour voir la source, mais il s'avère que la chose sysadmin était le problème bien que je puisse interroger 'sysmail_mailitems' sans problème. W00t, problème résolu-thx! –

0

Vous pourriez être à la recherche de la mauvaise version de la table. Les tables peuvent être créées sous différents noms d'utilisateur. donc database.dbo.mytable est différent de database.klowrey.mytable.

Recherchez votre table dans l'Explorateur d'objets. Voir s'il y a deux tables avec le même nom sous différents utilisateurs.

Questions connexes