AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 27485
Accepted
jmoreno
jmoreno
Asked: 2012-10-23 09:41:42 +0800 CST2012-10-23 09:41:42 +0800 CST 2012-10-23 09:41:42 +0800 CST

“查看服务器状态”的安全性和性能影响

  • 772

这个问题指出,各种 DMV(动态管理视图)都需要“查看服务器状态”权限,但我找不到任何关于你做什么和不想授予权限的信息。

现在我当然了解“最少权限”,以及为什么您不想将其授予任何人,但我找不到任何关于如何评估是否应该授予它的指导。

所以,我的问题是:授予用户“查看服务器状态”权限的安全性和性能影响是什么。他们能做什么,他们可能不应该被允许做......

更新:一个暗示是用户将能够使用 DMV 来查看查询。如果查询或查询参数可能包含用户无法看到的机密信息,则允许查看服务器状态将允许他们这样做(即 dob = 或 ssn =)。

sql-server permissions
  • 4 4 个回答
  • 16820 Views

4 个回答

  • Voted
  1. Best Answer
    Pete Carter
    2012-10-23T09:52:38+08:002012-10-23T09:52:38+08:00

    授予此权限后,我不会想到任何重大的性能问题。从安全的角度来看,您冒着让用户看到您的弱点的最详细信息的风险,例如,恶意用户可以查看您最常见的等待统计信息,这可以帮助他们针对您的服务器进行 DoS 攻击.

    这可能吗?确实。这可能吗?我不得不说不,但请记住,据估计,针对公司的攻击中有 90% 来自内部攻击者。

    • 8
  2. user61149
    2015-03-12T10:12:47+08:002015-03-12T10:12:47+08:00

    作为管理员,您会将此信息视为在您的域中(性能/索引使用等),但有潜在的令人信服的原因是开发组织希望将这些信息用于他们支持的大型遗留系统 - 识别仅被触及的僵尸表例如,通过维护过程。

    最后,它总是最终成为“运气和慷慨”的问题,因为关于任何特定请求是否合理的呼吁最终成为一个软选择,而不是一个明确的公式。在不考虑上下文的​​情况下使用最佳实践模式本身就是一种非常讨厌的反模式,而现实是许多人以“与手交谈”作为起点来接近他们的立场。

    • 3
  3. Solomon Rutzky
    2019-10-29T13:43:28+08:002019-10-29T13:43:28+08:00

    关于性能影响,我不知道对此或任何其他许可有任何影响。

    关于:

    他们能做哪些他们不应该被允许做的事情

    简而言之,他们可以看到他们可能不应该看到的东西。不要仅仅从 SQL Server 的角度来考虑这一点。此特定权限还管理 DMV,例如sys.dm_os_sys_info和许多其他提供对主机(硬件、服务等)的洞察的权限。你并不总是知道哪些信息可以用来对付你。而且,即使您现在对某人看到此权限允许的所有内容感到满意,有时 DMV 会添加到服务包/累积更新中,因此可能会暴露您不知道的新信息。

    我找不到任何关于如何评估是否应该授予它的指导。

    既然您已经提到给人们所需的最低权限,那么这实际上归结为:是否有人需要此权限才能临时使用?意思是,是否有人需要灵活地提出自己的查询?创建一个或多个存储过程和/或多语句 TVF 会起作用吗?如果是这样,那么您不需要向任何用户授予权限(然后他们可以自由地使用该权限所允许的任何内容),而是您将权限授予代码(它只执行它被编码的操作)。模块签名是您完成此任务的方式。一般概念是:

    1. 创建存储过程和/或多语句 TVF 以执行所需的操作。
    2. 将这些模块授予EXECUTE执行这些操作所需的任何用户和/或角色
    3. 创建证书
    4. 使用该证书对模块进行签名(使用ADD SIGNATURE)
    5. 将证书复制到[master]数据库(即[master]使用用于签署模块的证书的公钥创建证书。
    6. 从复制到的证书创建登录[master]
    7. 授予该基于证书的登录所需的任何实例级权限(包括将其添加到实例级角色)。

    有关一些示例,请参阅:

    • 如何维护跨域的数据库所有权恢复?

    • 无需将高级权限授予任何人即可安全轻松地使用高级权限:服务器级

    • 2
  4. Thomas Stringer
    2012-10-24T13:01:58+08:002012-10-24T13:01:58+08:00

    这是一个安全问题。如果你遵循最小特权原则,你永远不会出错。换句话说,如果身份验证主体不需要特定权限,则不要将其提供给他们。您是否将有关您门上锁类型的信息提供给不需要了解您房屋的其他人?我希望不会。他们可能不会做任何事情,但仍然不谨慎。

    如果我们基于运气和慷慨的数据原则,我们会更频繁地遇到更大的麻烦。安全性是一个方面,只有当您可以捍卫您授予的原因时,您才应该授予。 你只是给某人提供了比他们需要知道的更多的信息。不要这样做。服务器状态仍然敏感。

    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何查看 Oracle 中的数据库列表?

    • 8 个回答
  • Marko Smith

    mysql innodb_buffer_pool_size 应该有多大?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    从 .frm 和 .ibd 文件恢复表?

    • 10 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve