持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
前言
上篇我们学习完了MySQL中的用户管理。有兴趣的小伙伴可以阅读(# MySQL学习-用户管理(二))。
下面我们继续学习MySQL中的权限管理。
权限管理
权限列表
MySQL中的权限,通过以下语句查看:
show privileges;
运行以上语句,我们可以看到MySQL中的权限:
- CREATE和DROP权限,可以创建新的数据库和表,或删除已有的数据库和表。如果将MySQL数据库中的DROP权限授予某用户,用户就可以删除MySQL访问权限保存的数据库。
- SELECT、INSERT、UPDATE和DELETE权限,允许在一个数据库现有的表上实施操作。
- SELECT权限只有在真正从一个表中检索时才被用到。
- INDEX权限允许创建或删除索引,INDEX适用于已有的表。如果具有某个表的CREATE权限,就可以在CREATE TABLE语句中包括索引定义。
- ALTER权限可以使用ALTER TABLE来更改表的结构和重新命名表。
- CREATE ROUTINE权限用来创建保存的程序(函数和程序),ALTER ROUTINE权限用来更改和删除保存的程序,EXECUTE权限用来执行保存的程序。
- GRANT权限允许授权给其他用户,可用于数据库、表和保存的程序。
- FILE权限使用户可以使用LOAD DATA INFILE和SELECT INTO OUTFILE语句读或者写服务器上的文件,任何被授予FILE权限的用户都能读或写MySQL服务器上的任何文件(说明用户可以读任何数据库目录下的文件,因为服务器可以访问这些文件)。
授予权限的原则
权限控制出于安全因素,因此需要遵循以下几个经验原则:
- 只授予能满足需要的最小权限。比如用户只需要查询,那就只给SELECT权限,不要给UPDATE或者DELETE权限。
- 创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。
- 为每个用户设置满足密码复杂度的密码。
- 定期清理不需要的用户,回收权限或者删除用户。
今天先学习到这里,明天继续。