目录
用户和权限介绍
密码策略
修改密码策略
用户权限管理
赋予权限
收回权限
用户和权限介绍
所有用户的信息都保存在mysql.user 数据表中 可使用desc 查看数据表结构
user 常用字段
部分字段解析
| 完整的账户 | 包含host和user,都是char型 都没有默认值 |
|---|---|
| host char(255) | 代表允许访问的客户端ip地址或主机地址,如果为 *表示都可以访问 |
| user char(32) | 代表用户的名称 |
| 关于权限的参数以_priv结尾的字段 | 权限都是enum("N","Y")型并且默认值都是N |
|---|---|
| Select_priv | select权限 |
| Insert_priv | insert插入权限 |
| Updata_priv | updata更新权限 |
| Delete_priv | delete删除权限 |
| Create_priv | create创建权限 |
| Drop_priv | drop删除权限 |
| Reload_priv | reload重新加载权限 |
| Shutdown_priv | shutdown关闭服务器权限 |
| Process_priv | process进程管理权限 |
| file_priv | file文件权限 |
| Grant_priv | grant授权管理权限 |
| 安全身份认证传输协议 | 字段简单介绍 |
|---|---|
| ssl_type | 代表传输类型 ,数据类型enum("","any","x509","specified") 分别代表空,任意类型,x509证书,specified 无默认值 |
| 以下数据类型都是blob 二进制 无默认值 | 字段简单介绍 |
| ssl_cipher | 保存安全加密连接的特定密码 |
| x509_issuer | 保存x509证书 |
| x509_subject | 保存x509证书 |
| 以max_开头的字段 类型都是 int(11) unsigned 默认值都是 0 | 字段简单介绍 |
| max_questions | 每小时的最大查询数 |
| max_updates | 每小时时的最大更新数 |
| max_connections | 每小时时的最大建立连接数 |
| max_user_connections | 同时的用户的最大连接数 |
| 关于密码的字段 | 字段简单介绍 |
|---|---|
| plugin | 加密密码插件, 类型:char(64) 默认值:mysql_native_password |
| authentication_string | 查看上面的, 类型:text 默认值:NULL |
| password_expired | 密码是否到期, 类型:enum('N','Y') 默认值: N |
| password_last_changed | 密码最后一次修改的时间, 类型:TIMESTAMP 默认值:NULL |
| password_lifetime | 密码存活周期 ,类型:smallint(5) unsigned 默认值:NULL |
| account_locked | 用户锁定, 类型:enum('N','Y') 默认值:N |
注意:mysql 中不包含password 字段 用plugin和authentication_string默认加密插件作为代替
密码策略
查看数据库当前密码策略
SHOW VARIABLES like "%password%";
查看密码插件
SHOW VARIABLES LIKE 'validate_password%';

可见现在对于密码的要求:
1.至少8位
2.至少一个大写字母
3.至少一个数字
4.密码策略等级中

5.至少一个特殊字符
修改密码策略
可以临时修改密码策略 重启后不生效
set global validate_password_policy=0;
即使修改了密码策略,密码策略在某些程度还是有保留,比如密码长度至少为4
即使修改到1,2,3还是会保留4
用户权限管理
语法格式:
grant 权限列表 on 库名.表名 to 用户名@'客户端主机'
[identified by '密码' with option参数];
赋予权限
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
grant select, insert, update, delete on testdb.* to common_user@'%'
grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';
grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库
show grants; -- 查看当前用户(自己)权限
show grants for dba@localhost;
grant all on *.* to dba@localhost;
收回权限
# revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可
revoke all on *.* from dba@localhost;


![[pyqt5]如何给工具栏图标添加资源文件](https://img-blog.csdnimg.cn/c5f61a0e51db4e54b001a678bcff8599.jpeg)
















