mysql用户权限

89 阅读1分钟

给当前用户赋予数据库的权限,常规的数据库增删改查之外,还有访问库,表,视图的权限。

设置完用户权限,最好手动执行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权限表

image.png

Y有权限,N无权限

flush privileges执行过程

自动清空用户权限数组,重新加载mysql.user表中的权限,一般两边数据都是一致的。

image.png

如果发生两边数据不一致,就手动刷新下。

image.png