给当前用户赋予数据库的权限,常规的数据库增删改查之外,还有访问库,表,视图的权限。
设置完用户权限,最好手动执行flush privileges。
创建一个用户 app_user,密码是 123456,访问数据库 myappdb,只需要 SELECT 和 INSERT 权限,允许从任何主机连接(%)。
脚本代码:
-- 创建用户 app_user,并设置密码为 123456,允许从任何主机连接
CREATE USER 'app_user'@'%' IDENTIFIED BY '123456';
-- 授予该用户对 myappdb 数据库中所有表的 SELECT 和 INSERT 权限
GRANT SELECT, INSERT ON myappdb.* TO 'app_user'@'%';
-- 刷新权限,确保立即生效
FLUSH PRIVILEGES;
@'%' 表示允许从任意主机连接。
myappdb.* 表示该权限作用于 myappdb 数据库的所有表。
生产环境下
管理员最好在生产环境中合理控制用户权限范围。
不小心给的权限过高,可以收回用户的权限
revoke all privileges on *.* from 'ua'@'%';
user权限表
Y有权限,N无权限
flush privileges执行过程
自动清空用户权限数组,重新加载mysql.user表中的权限,一般两边数据都是一致的。
如果发生两边数据不一致,就手动刷新下。