だから私は、従業員の一連の統計を追跡する社内用のウェブサイトを持っています。これらの 1 つは、レポートが欠落しているかどうかです。まだレポートがないアイテムのリストは数日ごとにしか更新されず、これらのレポートには 3 日間の猶予期間があるため、アイテムがレポートの欠落として記録された日付 (releaseDt) をデータベースが最後に更新された時刻 (@lastupdate)。このようにして、レポート データベースが更新されていなくても、レポートが完成している場合、Web サイトはレポートを見逃したとして誰かを非難することはありません。
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