前言
系统开发时,可能需要涉及多个库,多张表。
系统的不同模块一般只需查看和操作固定的几个库,几张表。
为了减少开发人员的误操作,可以设置权限来进行必要的控制。
通过为MySQL服务器建立不同的用户,并为用户赋予不同的权限,来达到目标。
以下内容为详细设置步骤。
一、新建用户
- 用Navicat连接本地服务器(如果之前已连接,请打开连接)
点击菜单栏 –> 用户,如图1-1所示:
图 1-1点击新建用户,如下图1-2所示:
图 1-2
用户名:设置连接服务器的用户名
主机:设置允许连接服务器的主机ip地址。%,代表此用户可以在所有主机上连接服务器;192.168.21.*,代表此用户只能在ip地址属于21段的主机上连接服务器;192.168.21.88,代表此用户只能在ip地址为192.168.21.88的主机上连接服务器。
密码:设置连接服务器的密码
确认密码:与密码设置保持一致
二、权限设置
如图1-2所示,我们可以看到还有其他Tab项:高级、服务器权限、权限和SQL预览。
高级:可以设置此用户每小时最多查询数/最多更新数/最多连接数/最多用户连接数以及SSL。
服务器权限:设置对服务器上所有数据库的操作权限。
权限:设置具体的库和具体的表的权限。当与服务器权限设置冲突时,以服务器权限为准。
SQL预览:以上所有设置的SQL语句都会展示在这里。
服务器权限和权限选项卡的设置含义,请参考下面的权限说明。
三、权限说明
权限 | 权限级别 | 权限说明 |
---|---|---|
CREATE | 数据库、表或索引 | 创建数据库、表或索引权限 |
DROP | 数据库或表 | 删除数据库或表权限 |
DELETE | 表 | 删除数据权限 |
SELECT | 表 | 查询权限 |
UPDATE | 表 | 更新权限 |
INSERT | 表 | 插入权限 |
ALTER | 表 | 更改表,比如添加字段、索引等 |
SHOW VIEW | 视图 | 查看视图权限 |
CREATE VIEW | 视图 | 创建视图权限 |
GRANT OPTION | 数据库、表或保存的程序 | 赋予权限选项 |
REFERENCES | 数据库或表 | |
INDEX | 表 | 索引权限 |
ALTER ROUTINE | 存储过程 | 更改存储过程权限 |
CREATE ROUTINE | 存储过程 | 创建存储过程权限 |
EXECUTE | 存储过程 | 执行存储过程权限 |
FILE | 服务器主机上的文件访问 | 文件访问权限 |
CREATE TEMPORARY TABLES | 服务器管理 | 创建临时表权限 |
LOCK TABLES | 服务器管理 | 锁表权限 |
CREATE USRE | 服务器管理 | 创建用户权限 |
PROCESS | 服务器管理 | 查看进程权限 |
RELOAD | 服务器管理 | 执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限 |
REPLICATION CLIENT | 服务器管理 | 复制权限 |
REPLICATION SLAVE | 服务器管理 | 复制权限 |
SHOW DATABASES | 服务器管理 | 查看数据库权限 |
SHUTDOWN | 服务器管理 | 关闭数据库权限 |
SUPER | 服务器管理 | 执行kill线程权限 |
四、MySQL权限经验原则
权限控制主要是出于安全因素,因此需要遵循以下几个经验原则:
- 只授予能满足需要的最小权限,防止用户误操作或有意进行破坏操作。
- 创建用户时限制用户的登录主机,一般是限制成指定IP或者内网IP段。
- 初始化数据库的时候删除没有密码的用户。安装完数据库的时候回自动创建一些用户,这些用户默认没有密码。
- 为每个用户设置满足密码复杂度的密码。
- 定期清理不需要的用户。回收权限或者删除用户。
结语
学习一个新知识,看官方文档是最高效的方式。网上的其他学习资料大多经过加工,而且是往坏的方向加工。要不就是人云亦云,让人误入歧途。不过,很多时候还不得不从网上学习,因为大多数的官方文档是英文的,阅读起来真的是有困难。这个时候发现,能够轻松的阅读英文文档是非常珍贵的一项技能。