任务一:建立程序使用的数据库账号
create user mc_class@‘172.16.31.%‘ identified with ‘mysql_native_password‘ by ‘123456‘ with max_user_connections 1;
测试案例:测试用户最大连接数量为1
mysql -umc_class -p -h172.16.31.135
新开窗口,继续创建连接.直接发现报错信息。max_user-connections 当前设置值为1
任务二:给账号授权
权限名称 | 说明 |
---|---|
Insert | 向表中插入数据的权限 |
Delete | 删除表中数据的权限 |
update | 修改表中数据的权限 |
select | 查询表中数据的权限 |
execute | 执行存储过程的权限 |
举个栗子
# 给用户mc_class授权mysql.user表上的user和host列的查询权限
grant select(user,host) on mysql.user to mc_class@‘192.168.1.%‘;
# 给用户mc_class授予mysql.user表上所有列的查询权限
grant select on mysql.user to mc_class@‘192.168.1.%‘;
# 给用户mc_class授权mysql库下所有表对象的查询权限
grant select on mysql.* to mc_class@‘192.168.1.%‘;
#给用户mc_class授权mysql库下所有表对象的查询/更新/删除权限
grant select,update,delete on mysql.* to mc_class@‘192.168.1.%‘;
GRANT命令的注意事项
select user,host from mysql.user;
# 192.168.32.%这个网段在授权列表中并不存在,于是直接报错
grant select on mysql.user to mc_class@‘192.168.32.%‘;
任务三:回收用户权限
show grants for mc_class@‘172.16.31.%‘;
# 授予mc_class用户mysql库下所有表的查找/删除/增加/更新命令
grant select,delete,insert,update on mysql.* to mc_class@‘172.16.31.%‘
# 回收mc_class删除/增加/更新权限,仅保留查询权限
revoke delete,insert,update on mysql.* from mc_class@‘172.16.31.%‘
原文:https://www.cnblogs.com/shine-rainbow/p/13162284.html