MySQL是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定不同权限。之前我使用的是 root用户,该用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户密码等管理权限。为了实际项目的需要,可以创建拥有不同权限的普通用户。
一、MySQL访问控制系统
MySQL实现了一个复杂的访问控制和权限系统,允许您创建全面的访问规则来处理客户端操作并有效防止未经授权的客户端访问数据库系统。
当客户端连接到服务器时,MySQL访问控制有两个阶段:
连接验证:连接到MySQL数据库服务器的客户端需要有一个有效的用户名和密码。此外,客户端连接的主机必须与MySQL授权表中的主机匹配。
请求验证:成功建立连接后,对于客户端发出的每个语句,MySQL会检查客户端是否具有足够的权限来执行特定语句。MySQL能够检查数据库,表和字段级别的权限。
有一个名为MySQL安装程序自动创建的数据库mysql。mysql数据库包含五个主要授权表。您经常通过GRANT 和 REVOKE等语句间接操作这些表 。
1.user:
包含用户帐户和全局权限列。MySQL使用user表来接受或拒绝来自主机的连接。user表中授予的权限 对MySQL服务器上的所有数据库都有效。
user表是 MySQL中最重要的一个权限表,用来记录允许连接到服务器的账号信息。需要注意的是,在 user表里启用的所有权限都是全局级的,适用于所有数据库。
user表中的字段大致可以分为 4类,分别是用户列、权限列、安全列和资源控制列,下面主要介绍这些字段的含义。
(1).用户列:
用户列存储了用户连接 MySQL 数据库时需要输入的信息。
字段名 字段类型 是否为空 默认值 说明
Host cha