Berechtigung zum Zugriff auf sys.dm_db_index_usage_stats

Ich habe also eine Website für den internen Gebrauch, die eine Reihe von Statistiken für Mitarbeiter aufzeichnet. Eine davon ist, ob ihnen Berichte fehlen. Da die Liste der Elemente, für die noch keine Berichte vorliegen, nur alle paar Tage aktualisiert wird und für diese Berichte eine Nachfrist von drei Tagen gilt, vergleiche ich das Datum (releaseDt), an dem für das Element ein Bericht als fehlend protokolliert wurde, mit dem Zuletzt wurde die Datenbank aktualisiert (@lastupdate). Wenn die Berichtsdatenbank nicht aktualisiert wurde, der Bericht jedoch vollständig ist, wird auf diese Weise von der Website niemandem verraten, weil er einen Bericht übersehen hat.

Der SQL-Code funktioniert gut mit Berechtigungen auf Administratorebene, aber aus offensichtlichen Gründen lasse ich nicht zu, dass das ASP.NET-Konto eine Serveradministratorebene aufweist.

Ich habe ein SQL-Konto eingerichtet, mit dem sich der ASP.NET C # -Code anmeldet, und die Berechtigungen für alles andere sind in Ordnung. (Lesezugriff nur für die spezifischen Datenbanken, die verwendet werden.) Ich kann nicht herausfinden, worauf zugegriffen werden soll, um Zugriff zum Lesen dieser spezifischen dynamischen Verwaltungsansicht zu erhalten.

Würde mich über Vorschläge freuen, die entweder Management Studio oder a verwendenGRANT SQL-Anweisung.

Dies scheint verwandte Informationen zu der fraglichen Ansicht zu haben:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage