gpt4 book ai didi

mysql - 如何正确处理多个特权MySQL连接帐户

转载 作者:行者123 更新时间:2023-11-29 11:28:31 27 4
gpt4 key购买 nike

我读过许多帖子和文章,它们非常清楚地指出,为了在最坏情况下达到最好的损害限制,MySQL 帐户应该只能做他们打算做的事情,而不能做其他事情。这是完全合理的,因此我的数据库将有一个连接帐户来执行所有数据的 SELECT 操作,另一个帐户则执行 UPDATEINSERT 事件,因此,如果有人确实通过SELECT他们不应该选择的数据而受到损害,那么他们就不能像UPDATE<那样轻松完全/code> 数据或 INSERT 等。

你明白了。

但是,我有各种数据库并使用帐户来读取/SELECT 数据,并将其输出到客户端页面,但通常这些帐户需要更新,例如更新时的小事情(网站)用户登录他们的帐户,或更新某种点击计数器或其他次要功能。考虑到上述问题的围栏,我觉得这有点像用洪水来扑灭篝火,允许对特权 MySQL 连接进行更新()只是说用户 Bob 最后一次登录是在下午 4:10。

我一直在网上寻找合适的指南、博客文章和文章,了解如何最好地使用多个 MySQL 特权帐户来完成必要的工作,并尽可能降低过度特权的风险,但我没有发现任何东西已经被大量使用,(主要是因为我的措辞似乎吸引了有关设置网站用户的文章,或与这些关键字相关的其他主题 :-/ )

我对当前方法有一些想法,并希望获得一些有关执行第 2 段中所述事件的最佳方法的反馈,通常为 95% SELECTing,以及 SELECT 的一些具体实例code>UPDATEing,或者以下任何一项是否可能(或者相反,是非常糟糕的想法)? :

  • 我目前为每个连接权限用户都有单独的 PHP 连接对象。这是最好的方法吗?
  • 我能否以某种方式授予特权用户仅更新某个表(甚至某个表列?)以及从任何表中进行 SELECT 的访问权限?这将是完美的。
  • 使用TRIGGER是一种常见方法,如果我创建一个触发器(使用特权用户)然后让SELECT用户,这会有什么缺点吗帐户访问触发器?

    • 我可以设置某些用户只能使用某些触发器吗?
  • 还有其他方法可以做到这一点吗?

最佳答案

MySQL 允许用户在数据库和单个表级别设置不同的权限。有关 GRANT ( http://dev.mysql.com/doc/refman/5.7/en/grant.html ) 语法的文档提供了一个示例,该示例在一个数据库上为用户设置所有权限,同时仅选择对另一个数据库中的表的访问权限。

甚至可以为表中的特定列 ( http://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-column-privileges ) 以及存储过程 ( http://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-routine-privileges ) 设置权限。

关于mysql - 如何正确处理多个特权MySQL连接帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810077/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com