MySQL权限

权限

MySQL 允许客户端用户连接到服务器并访问服务器管理数据,MySQL 用户权限系统的主要功能是对给定主机连接的用户进行身份验证,并将该用户与数据库的权限相关联。

在 MySQL8 之前,授权表使用 MyISAM 并且是非事务性的,在 MySQL8 中,授权表使用 InnoDB 存储引擎并且是事务性的。服务器在启动时将授权表的内容读入内存,您可以通过命令 FLUSH PRIVILEGES 重新加载。

user:用户帐户、静态全局权限表;
global_grants:动态全局权限表;
db:数据库级的权限表;
tables_priv:存储表级权限;(增加某个用户表权限)
columns_priv: 存储列级权限;
procs_priv: 存储过程和函数权限表;
proxies_priv: 代理用户权限表;
default_roles:默认用户角色表;
role_edges:记录角色与用户的授权关系表;
password_history: 密码更改历史表。

账号管理

虽然 INSERT、UPDATE、DELETE 等语句也可以直接修改授权表,不过不推荐,因为用户权限一般涉及多表直接修改风险较高,所以要管理 MySQL 帐户,请使用专用的 SQL 语句:

  • CREATE USER 和 DROP USER 用于创建和删除帐户;
  • GRANT 和 REVOKE 用于分配权限和撤销权限;
  • SHOW GRANTS 用于显示帐户权限。
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password'; //创建局域网络账号
GRANT ALL ON *.* TO 'myuser'@'localhost' WITH GRANT OPTION; //分配权限
REVOKE ALL ON *.* FROM 'myuser'@'localhost'; //撤销权限
SHOW GRANTS FOR 'myuser'@'localhost'; //查看权限
DROP USER 'myuser'@'localhost'; //删除账号

用户管理

修改密码

ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'password';//修改密码

设置密码过期

ALTER USER 'myuser'@'localhost' PASSWORD EXPIRE; //设置立即过期
ALTER USER 'myuser'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY; //设置30天过期
ALTER USER 'myuser'@'localhost' PASSWORD EXPIRE NEVER; //禁用密码过期

锁定账户

# 连续登录失败3次则锁定3天,天数可取值:0-32767,设置 0 则代表解锁
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 3;
# 连续登录失败3次则永久锁定
ALTER USER 'myuser'@'localhost' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNBOUNDED;

你可能感兴趣的:(数据库,mysql,数据库)