MySQL学习-权限管理(一)

96 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

前言

上篇我们学习完了MySQL中的用户管理。有兴趣的小伙伴可以阅读(# MySQL学习-用户管理(二))。
下面我们继续学习MySQL中的权限管理。

权限管理

权限列表

MySQL中的权限,通过以下语句查看:

show privileges;

运行以上语句,我们可以看到MySQL中的权限:

  1. CREATE和DROP权限,可以创建新的数据库和表,或删除已有的数据库和表。如果将MySQL数据库中的DROP权限授予某用户,用户就可以删除MySQL访问权限保存的数据库。
  2. SELECT、INSERT、UPDATE和DELETE权限,允许在一个数据库现有的表上实施操作。
  3. SELECT权限只有在真正从一个表中检索时才被用到。
  4. INDEX权限允许创建或删除索引,INDEX适用于已有的表。如果具有某个表的CREATE权限,就可以在CREATE TABLE语句中包括索引定义。
  5. ALTER权限可以使用ALTER TABLE来更改表的结构和重新命名表。
  6. CREATE ROUTINE权限用来创建保存的程序(函数和程序),ALTER ROUTINE权限用来更改和删除保存的程序,EXECUTE权限用来执行保存的程序。
  7. GRANT权限允许授权给其他用户,可用于数据库、表和保存的程序。
  8. FILE权限使用户可以使用LOAD DATA INFILE和SELECT INTO OUTFILE语句读或者写服务器上的文件,任何被授予FILE权限的用户都能读或写MySQL服务器上的任何文件(说明用户可以读任何数据库目录下的文件,因为服务器可以访问这些文件)。

授予权限的原则

权限控制出于安全因素,因此需要遵循以下几个经验原则:

  1. 只授予能满足需要的最小权限。比如用户只需要查询,那就只给SELECT权限,不要给UPDATE或者DELETE权限。
  2. 创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。
  3. 为每个用户设置满足密码复杂度的密码。
  4. 定期清理不需要的用户,回收权限或者删除用户。

今天先学习到这里,明天继续。