create user aa@localhost identified by '123';//本地用户
create user aa@'%' identified by '123'; //其他远程用户
1.2 重命名用户
rename user 'test3'@'%' to 'test1'@'%';
1.3 删除用户
drop user 'testUser'@'%';
2 权限
2.1 授予权限
grant 权限 on 库.表 to 用户@主机 identified by '密码';grant 权限 on 库.表 to 用户@主机 identified by '密码';
grant all on *.* to 'testUser'@'%' identified by '123';
2.1.1 查询、插入、更新、删除的权限
grant select on testdb.* to 'testUser'@'%';
grant insert on testdb.* to 'testUser'@'%'; #其中*第通配符,表示所有
grant update on testdb.* to 'testUser'@'%';
grant delete on testdb.* to 'testUser'@'%';
#总结成一条命令
grant select,insert,update,delete on testdb.* to 'testUser'@'%';
2.1.2 创建和删除表、索引、视图、存储过程的权限
grant create on testdb.* to 'testUser'@'%'; #其中*第通配符,表示所有
grant alter on testdb.* to 'testUser'@'%';
grant drop on testdb.* to 'testUser'@'%';
#总结成一条命令
grant create,alter,drop on testdb.* to 'testUser'@'%';
#外键权限
grant reference on testdb.* to 'testUser'@'%';
#索引权限
grant index on testdb.* to 'testUser'@'%';
#视图权限
grant create view on testdb.* to 'testUser'@'%';
grant show view on testdb.* to 'testUser'@'%';
#存储过程权限
grant create routine on testdb.* to 'testUser'@'%';
grant alter routine on testdb.* to 'testUser'@'%';
grant execute on testdb.* to 'testUser'@'%';
2.1.3 指定用户管理数据库的权限
#仅管理testdb数据库
grant all privileges on testdb.* to 'testUser'@'%';
#管理所有数据库
grant all privileges on *.* to 'testUser'@'%';
#其中privileges关键字可省略
2.2 权限的作用层次
2.2.1 作用在整个MySQL服务器上
grant all privileges on *.* to 'testUser'@'%';
2.2.2 作用在单个数据库上
grant all privileges on testdb.* to 'testUser'@'%';
2.2.3 作用在单个数据表上
grant all privileges on testdb.testTable to 'testUser'@'%';
2.2.4 作用在单个数据表的若干个列上
grant select(id, name, home, phone) on testdb.testTable to 'testUser'@'%'; #select可以改其他,字段根据实际修改
2.2.5 作用在存储过程、函数上
grant execute on procedure testdb.tsetfunc to 'testUser'@'%';
grant execute on function testdb.tsetfunc to 'testUser'@'%';
2.3 权限刷新
flush privileges;
2.4 查看权限
#查看当前用户的权限
show grants;
#查看mysql中其他用户的权限
show grants for 'testUser'@'%';
2.5 移除权限
revoke 权限 on 库.表 from 用户@主机;
revoke all on *.* from 'testUser'@'%';
grant all on testdb.* to 'testUser'@'%' with grant option;
3 密码
3.1 修改密码
3.1.1 更新mysql.user表
# mysql5.7之前
update user set password=password('123456') where user='root';
# mysql5.7之后
update user set authentication_string=password('123456') where user='root';
flush privileges;
3.1.2 用set password命令
语法:set password for ‘用户名'@'登录地址'=password(‘密码')
set password for 'root'@'localhost'=password('123456');