在数据库的使用过程中,考虑的数据的安全性。通常root用户的密码是不对外提供的。但由于项目的需要,部分人员需要数据库的部分权限,这个时候就需要创建普通并提供相关权限。

创建普通用户,必须有相应的权限来执行创建操作。MySQL提供了三种创建普通的用户方法,分别是create user,grant 和直接操作mysql授权表。如下:

一、 使用CREATE USER 语句创建新用户
譬如,当前有一个用户WZG申请访问数据库权限,于是数据库管理员并新建了一个用户,用户名:WZG,密码:QASKY1234,主机名:LOCALHOST

CREATE USER 'WZG'@'LOCALHOST' IDENTIFIED BY 'QASKY123';

创建失败,提示当前密码不满足策略要求

修改密码策略:(想想可参阅:CentOS7系统安装MySQL指导手册)

SELECT @@VALIDATE_PASSWORD_POLICY;

set global validate_password_policy = 0;

GRANT ALL ON *.* TO 'WZG'@'LOCALHOST';

二、 使用GRANT 语句创建新用户
使用CREATE USER 语句创建账户后在USER表中新增一条记录,但是新创建的用户没有任何权限,还需要通过GRANT语句进行赋权。而使用GRANT语句不仅可以创建新用户,还可以在创建的同时对用户授权。以上述为例:

grant select,insert on *.* to 'wzg1'@'localhost' identified by 'qasky1234';

三、 直接操作MYSQL用户表
使用CREATE和GRANT的本质都是像USER表中插入一个用户。所以也可以直接在USER表中插入一条数据。

insert into user(host,user,authentication_string) values('localhost','wzg2',password('qasky1234'));


由于5.1版本之后通过insert创建用户会提示上述错误,不推荐使用该方法。如果使用,给该字段进行赋值。

更多推荐

MySQL如何创建用户