3

最初に、作成する必要があるレポートのコンテンツをクエリしようとすると、「SELECT 権限がありません」というエラーが発生しました。そのため、MSDB でアカウントに付与DatabaseMailUserRoleしました。列は表示されますが、存在することがわかっているデータはありません。

アカウントがデータを表示するために行う必要があるのは何ですか?

4

2 に答える 2

7
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 ロールである必要があり、フィルタリングされた結果を表示するには送信ユーザーである必要があるようです。

于 2010-09-10T18:58:14.027 に答える
0

間違ったバージョンのテーブルを見ている可能性があります。テーブルは、異なるユーザー名で作成できます。したがって、database.dbo.mytable は database.klowrey.mytable とは異なります。

オブジェクト エクスプローラーでテーブルを探します。異なるユーザーの下に同じ名前の 2 つのテーブルがあるかどうかを確認します。

于 2010-09-10T18:53:10.780 に答える