sql - MSDB.dbo.sysmail_faileditems 中没有行

标签 sql sql-server sql-server-2005 tsql database-mail

最初,我在尝试查询我需要创建的报告的内容时收到“无 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)

因此看起来您需要处于系统管理员角色才能查看所有结果或发送用户才能查看过滤后的结果。

关于sql - MSDB.dbo.sysmail_faileditems 中没有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687447/

相关文章:

mysql - 使用SUM和order by子句连接两个表数据的sql查询

c# - 不需要时,更新语句中的SQL参数应该是什么

sql - 如何查找前一行和当前行的差异

mysql - mysql 查询中的数据透视表

sql - MySQL 中的 Decimal(3,2) 值始终为 9.99

sql - 如何处理同一列中多种日期格式的 Snowflake to_date 转换问题?

sql - RPC和普通链接服务器选择的性能差异

SQL 两列的全连接

.net - 如何使用 NHibernate 和 SQL Server 2005 保存 PDF 文件

sql - 如何在 MSSQL 查询中修剪前导和尾随制表符空格