所以我有一个内部使用的网站,它跟踪员工的一堆统计数据。其中之一是他们是否缺少任何报告。由于尚无报告的项目列表仅每两天更新一次,并且这些报告有 3 天的宽限期,因此我将项目记录为缺少报告的日期 (releaseDt) 与上次更新数据库的时间 (@lastupdate)。这样,如果报告数据库尚未更新但报告已完成,则网站不会因为缺少报告而指责某人。
SQL 代码适用于管理员级别的权限,但出于显而易见的原因,我不让 ASP.NET 帐户具有服务器管理员级别。
我已经设置了一个 ASP.NET C# 代码用于登录的 SQL 帐户,其他一切的权限都很好。(仅对其使用的特定数据库的读取访问权限。)我不知道要授予它访问权限的内容,以便有权读取此特定的动态管理视图。
使用 Management Studio 或使用GRANT
SQL 语句的建议将不胜感激。
这似乎有关于相关视图的相关信息:
sys.dm_db_index_usage_stats (Transact-SQL)
DECLARE @lastupdate datetime
SELECT @lastupdate = last_user_update from sys.dm_db_index_usage_stats
WHERE OBJECT_ID = OBJECT_ID('MissingReport')
SELECT
COALESCE(Creator, 'Total') AS 'Creator',
COUNT(*) AS Number,
'$' + CONVERT(varchar(32), SUM(Cost), 1) AS 'Cost'
FROM MissingReport
WHERE NOT(
[bunch of conditions that make something exempt from needing a report]
OR
(
DATEDIFF(day,ReleaseDt,@lastupdate) <= 3
)
)
GROUP BY Creator WITH ROLLUP