在数据库的使用过程中,考虑的数据的安全性。通常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创建用户会提示上述错误,不推荐使用该方法。如果使用,给该字段进行赋值。