问题描述

WordPress(“5 Minutes”) 的简短安装说明指出:

Create a database for WordPress on your web server, as well as a MySQL user who has all privileges for accessing and modifying it.

在专业设置一个新博客时,我想知道如何映射到 MySQL 数据库用户权限/权限配置为我提供的功能:

  • 数据:SELECTINSERTUPDATEDELETE
  • 定义:CREATEALTERDROP
  • 额外:INDEX
  • 更多:

    1.  LOCK TABLES
    2.  REFERENCES
    3.  CREATE TEMPORARY TABLES
    4.  CREATE VIEW
    5.  SHOW VIEW
    6.  CREATE ROUTINE
    7.  EXECUTE
    8.  ALTER ROUTINE

我非常确定前三组,我在这里命名为 「数据,定义和附加」 。但是更多条目下面的其他人呢?通常我会说,那些不是必需的,但我想得到第二个意见。

最佳解决方案

你指出的其他人是不需要的。

Btw,您可以做的是根据请求的页面有条件地设置用户/传递。如在普通使用中选择/插入/更新/删除无特权,并且在访问升级页面时还具有与定义/索引相关的内容的特权。

次佳解决方案

「所有权限」 通常意味着您应该向用户展示一切。但是…

我发现至少 one article 声称 MySQL 用户只需要:

  • 选择
  • 更新

 Digging deeper,我发现为了完全运行 (自动更新,plug-in 安装/卸载等),WordPress 需要一些额外的权限:

  • 删除
  • ALTER(更新)
  • 创建表
  • DROP TABLE

另外,没有引用,但它是有道理的:

  • 指数

但是,我认为只有两个坚实的参考资料可以通过其他地方发表的意见予以支持。我仍然鼓励您坚持使用 GRANT ALL,但如果您绝对必须限制您的数据库使用,请从这 7 个特权开始,并完全测试,以确保事情按预期工作。

第三种解决方案

Codex 在限制数据库用户权限方面必须说明的是:

For normal WordPress operations, such as posting blog posts, uploading media files, posting comments, creating new WordPress users and installing WordPress plugins, the MySQL database user only needs data read and data write privileges to the MySQL database; SELECT, INSERT, UPDATE and DELETE.

Therefore any other database structure and administration privileges, such as DROP, ALTER and GRANT can be revoked. By revoking such privileges you are also improving the containment policies.

Note: Some plugins, themes and major WordPress updates might require to make database structural changes, such as add new tables or change the schema. In such case, before installing the plugin or updating a software temporarily allow the database user the required privileges.

 http://codex.wordpress.org/Hardening_WordPress

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。