mysql创建用户的方法分成三种:
- INSERT USER
- CREATE USER
- GRANT
账号由用户名+主机构成,中间用@ 隔开
其中 主机可由通配符 % 组成,
1. insert user
直接向 mysql.user 表中插入记录
例子:insert into user (host,user,password) values (’%’,‘john’,password(‘123’));
存在问题:较高版本的mysql 可能会提示 user表中的某个字段不能为空,无法插入。
该方法创建的用户没有权限,需要
2.create user
代码:CREATE USER ‘username’@‘hostname’ [IDENTIFIED BY ‘PASSWORD’] 其中密码是可选项;
例子1:create user ‘test’@‘localhost’ 创建一个用户名为test 的没有密码的用户
例子2:create user ‘test’@‘localhost’ identified by ‘123456’ 创建一个用户名为test 密码为123456的用户
该方法创建的用户只有连接数据库权限
3.grant
代码:GRANT [权限] ON [数据库名] to [username@hostname] [IDENTIFIED BY ‘PASSWORD’] [WITH GRANT OPTION];
其中 grant 命令 中的用户若不存在会新创建,若存在则直接授权
其中 权限为:
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
等14个权限
或者为 all privileges 为全部权限
例子1:grant select on * .* to ‘test01’@‘localhost’ identified by ‘123456’ ;
说明:将所有数据库的select 赋给 用户名为test01 密码为:123456的用户
若赋予多个权限可用 英文逗号 隔开 例如:grant select,update,insert on …
最后
完成所有操作后,需要刷新权限表,使权限立即生效。
flush privileges;