9.5.3 权限的类型和级别

MySQL中存在3个基本类型的权限:适用于赋予一般用户的权限、适用于赋予管理员的权限和几个特定的权限。任何用户都可以被赋予这3类权限,但是根据最少权限原则,最好严格限定只将管理员类型的权限赋予管理员。

我们应该只赋予用户访问他们必须使用的数据库和表的权限。而不应该将访问mysql的权限赋予不是管理员的人。mysql数据库是所有用户名、密码等信息存储的地方。(我们将在第12章详细介绍该数据库)。

常规用户的权限直接与特定的SQL命令类型以及用户是否被允许运行它们相关。我们将在下一章中详细讨论这些SQL命令。这里,我们将对这些权限所能实现的操作的概念性描述。表9-1所示的是基本用户权限。“应用于”列下面的对象给出了该类型权限可以授予的对象。

9.5.3 权限的类型和级别 - 图1

从系统的安全性方面考虑,适于常规用户的权限大多数是相对无害的。ALTER权限通过重命名表可能会影响权限系统,但是大多数用户需要它。安全性常常是可用性与保险性的折中。遇到ALTER的时候,应当作出自己的选择,但是通常还是会将这个权限授予用户。

除了表9-1给出的权限,还有两种权限:REFERENCES权限和EXECUTE权限,但是如今已经不再使用了,而GRANT权限是以WITH GRANT OPTION选项给出,而不是在权限列表里列出的。

表9-2给出了适用于管理员用户使用的权限。可以将这些权限授予非管理员用户,这样做的时候要非常小心。

FILE权限有些不同,它对普通用户非常有用,因为它可以将数据从文件载入数据库,从而可以节省许多时间,否则,每次将数据输入数据库都需要重新输入,这很浪费时间。

然而,文件载入可以用来载入MySQL可识别的任何文件,包括属于其他用户的数据库和潜在的密码文件。授予该权限的时候需要小心,或者自己为用户载入数据。

此外,还存在两个特别的权限,如表9-3所示。

9.5.3 权限的类型和级别 - 图2

9.5.3 权限的类型和级别 - 图3