Uprawnienia dostępu do sys.dm_db_index_usage_stats

Mam więc stronę internetową do użytku wewnętrznego, która śledzi kilka statystyk dla pracowników. Jednym z nich jest to, czy brakuje im jakichkolwiek raportów. Ponieważ lista elementów, które nie mają jeszcze raportów, jest aktualizowana co kilka dni, a raporty te mają 3-dniowy okres karencji, porównuję datę (releaseDt), że element został zarejestrowany jako brakujący raportu do ostatnia aktualizacja bazy danych (@lastupdate). W ten sposób, jeśli baza danych raportów nie została zaktualizowana, ale raport jest kompletny, witryna nie zapisuje nikogo za brak raportu.

Kod SQL działa poprawnie z uprawnieniami administratora, ale z oczywistych powodów nie pozwalam, aby konto ASP.NET miało poziom administratora serwera.

Skonfigurowałem konto SQL, którego kod programu ASP.NET C # używa do logowania, a uprawnienia do wszystkiego innego są poprawne. (Dostęp do odczytu tylko dla określonych baz danych, z których korzysta.) Nie mogę dowiedzieć się, co daje mu dostęp, aby mieć dostęp do odczytu tego konkretnego dynamicznego widoku zarządzania.

Będzie wdzięczny za sugestie za pomocą Management Studio lub za pomocąGRANT Instrukcja SQL.

Wygląda na to, że mają powiązane informacje na temat danego widoku:

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

questionAnswers(1)

yourAnswerToTheQuestion