1

作为一名 PHP 开发人员,我必须在我的虚拟主机面板上为每个数据库用户设置权限。我读了一些文章,比如应该 在 Stackoverflow.com 的 mysql 中为网站数据库用户/客户端设置哪些权限,但我认为其中遗漏了一些东西。

这是我必须在我的虚拟主机面板中设置的内容:

在此处输入图像描述

我知道SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,GRANT,CREATE TMP TABLES。但我需要知道我是否必须设置或取消设置INDEX,REFERENCE, and LOCK TABLES.

这三个最后的特权是什么?

4

1 回答 1

1

有关所有权限的信息可以在一个冗长的 MySQL 文档页面中找到。这是你问的三个:

6.2.2 MySQL提供的权限

指数

允许使用创建或删除(删除)索引的语句。INDEX 适用于现有表。如果您具有表的CREATE权限,则可以在CREATE TABLE语句中包含索引定义。


参考

创建外键约束需要父表的 REFERENCES 特权。


锁定表

允许使用显式LOCK TABLES语句来锁定您具有SELECT权限的表。这包括使用写锁,它可以防止其他会话读取锁定的表。

TLDR:

  • INDEX允许在现有表上添加/删除索引。
  • REFERENCES允许在表上创建外键约束。
  • LOCK TABLES允许获取表上的锁以防止其他会话以特定方式访问它们,例如读取或写入。
于 2019-12-05T10:15:06.443 回答