最初に、作成する必要があるレポートのコンテンツをクエリしようとすると、「SELECT 権限がありません」というエラーが発生しました。そのため、MSDB でアカウントに付与DatabaseMailUserRole
しました。列は表示されますが、存在することがわかっているデータはありません。
アカウントがデータを表示するために行う必要があるのは何ですか?
最初に、作成する必要があるレポートのコンテンツをクエリしようとすると、「SELECT 権限がありません」というエラーが発生しました。そのため、MSDB でアカウントに付与DatabaseMailUserRole
しました。列は表示されますが、存在することがわかっているデータはありません。
アカウントがデータを表示するために行う必要があるのは何ですか?
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)
したがって、すべての結果を表示するには sysadmin ロールである必要があり、フィルタリングされた結果を表示するには送信ユーザーである必要があるようです。
間違ったバージョンのテーブルを見ている可能性があります。テーブルは、異なるユーザー名で作成できます。したがって、database.dbo.mytable は database.klowrey.mytable とは異なります。
オブジェクト エクスプローラーでテーブルを探します。異なるユーザーの下に同じ名前の 2 つのテーブルがあるかどうかを確認します。