当前位置: 首页 > 面试题库 >

存取sys.dm_db_index_usage_stats的权限

尉迟子民
2023-03-14
问题内容

因此,我有一个供内部使用的网站,该网站可以跟踪员工的大量统计数据。其中之一就是他们是否缺少任何报告。由于尚无报告的项目列表仅每两天更新一次,并且这些报告有3天的宽限期,因此我将记录为缺少报告的项目记录的日期(releaseDt)与上次数据库更新时间(@lastupdate)。这样,如果报告数据库尚未更新但报告已完成,则该网站不会因为缺少报告而招人。

SQL代码在管理员级别的特权下可以正常工作,但是出于明显的原因,我不让ASP.NET帐户具有服务器管理员级别。

我已经建立了一个SQL帐户,ASP.NET
C#代码用于登录,并且其他所有权限都很好。(仅对其使用的特定数据库具有读取访问权限。)我无法弄清楚该访问权限赋予了哪些权限,以便可以读取此特定的动态管理视图。

希望使用Management StudioGRANTSQL语句提出建议。

这似乎具有有关视图的相关信息:

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

问题答案:

您不能授予SELECTDMV,因为针对服务器范围的DMV的策略禁止这样做:

GRANT SELECT ON sys.dm_db_index_usage_stats TO peon;

结果是:

消息4629,级别16,状态10,第1行
仅在当前数据库为master时,才能授予服务器范围的目录视图或系统存储过程或扩展存储过程的权限。

您引用的BOL页面告诉您需要授予权限VIEW SERVER STATE。您可以将其应用于master的登录名:

USE master;
GO
GRANT VIEW SERVER STATE TO peon;
-- if it's a Windows login then:
GRANT VIEW SERVER STATE TO [Domain\peon];

但是,没有一种方法可以针对每个数据库执行此操作。并不是您应该担心所有问题,因为即使有人可以弄清楚如何使用ASP.NET帐户凭据入侵您的服务器,他们所能做的只是
查看 服务器状态,他们什么也不能更改。



 类似资料:
  • 我的话题,我试图在android中获取存储权限,我的权限代码在andoid 11下方工作,但问题是当我尝试在android 11中获取存储权限时,代码不起作用,所以请帮助我… 这是我的代码:- 这是我的AndroidManifest.xml Android:requestlegacyexternalstarge = " true " 这是我的JavaCode代码 以上是完整的代码,请检查并告诉我我

  • 我在laravel中使用自己的用户角色和权限实现如何缓存用户登录时的所有权限和角色,以及在添加新记录时刷新缓存。我的表是users、roles、permissions、permission\u role、permission\u user、role\u user。这是我的桌子结构 我已经在上创建了提供程序,并将此代码添加到引导方法 它工作正常,但每次都在运行查询,这会减慢我的应用程序的速度,有没有

  • 在Android OS 4.0上运行我的应用程序并请求权限时,我遇到问题: 我总是接到电话 使用ActivityCompat检查权限。checkSelfPermission总是返回。 通过使用system dialog请求权限,它在OS 6.0上运行良好。Android操作系统4。除4.0之外,始终授予许可。OS 4.0其他权限(摄像头、日历、联系人、电话)运行正常,但导致此问题的。 也许是操作系

  • 我正在尝试创建一个简单的应用程序,该应用程序可以从图库应用程序获取图像并将其显示在图像按钮上。我正在运行 Android 5.0.1 的手机上使用 API 21 进行测试。不幸的是,无论我尝试什么,我都会收到安全错误 - 即使我指定了权限。 我获取和检索图像的代码是: 当我尝试从Dropbox中选择图像时,代码有效,但当我从图库中选择图像时,我得到 我将READ_EXTERNAL_STORAGE的

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/user/v1.0.0/getUserPermissionsList 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说

  • 接口说明 获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/user/v1.0.0/getUserPermissions 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 无