在对 MySQL 的日常管理和实际操作中,为了数据库的安全,避免恶意用户使用 root 账号控制数据库,我们通常会创建一系列具备适当权限的账号.这样,我们就可以不用或少用 root 账号登录NySQL数据库,在一定程度上确保数据的安全访问.本文介绍MySQL数据库如何创建用户.
创建用户
可以使用 CREATE USER 语句来创建 MySQL 账户,并设置账户的密码.
语法:
CREATE USER '用户名'[@'登录主机名'] [ IDENTIFIED BY ] [ '密码' ]
语法说明: 用户名: 要创建的用户名 登录主机名: 即用户连接 MySQL 时所在主机的名字,如果是本地用户可用localhost;如果想让该用户可以从任意远程主机登陆,可以使用通配符% IDENTIFIED BY: 用于指定用户账号对应的密码,若该用户账号无密码,则可省略此子句
密码: 用户的登陆密码
注意:
1. 如果使用 CREATE USER 语句时没有为用户指定密码,那么 MySQL 允许该用户可以不使用密码登录系统.从安全的角度而言,不推荐这种做法.
2. 使用 CREATE USER 语句必须拥有 MySQL 中 MySQL 数据库的 INSERT 权限或全局 CREATE USER 权限.
3. 使用 CREATE USER 语句创建一个用户账号后,会在系统自身的 MySQL 数据库的 user 表中添加一条新记录.若创建的账户已经存在,则语句执行时会出现错误.
4. 新创建的用户拥有的权限很少.他们可以登录 MySQL,只允许进行不需要权限的操作,如使用 SHOW 语句查询所有存储引擎和字符集的列表等.
5. 如果两个用户具有相同的用户名和不同的主机名,MySQL 会将他们视为不同的用户,并允许为这两个用户分配不同的权限集合.
例子:# 创建用户neil,密码为123456,允许在任何远程主机上登录MySQL
CREATE USER 'neil'@'%' IDENTIFIED BY '123456';
# 创建用户neil,密码为123456,允许在主机192.168.1.10上登录MySQL
CREATE USER 'neil'@'192.168.1.10' IDENTIFIED BY '123456';
# 创建用户neil,密码为空,允许在任何远程主机上登录MySQL
CREATE USER 'neil'