MySQL 8.0权限认证(下)

一.设置MySQL用户资源限制

通过设置全局变量max_user_connections可以限制所有用户在同一时间连接MySQL实例的数量,但此参数无法对每个用户区别对待,

所以 MySQL提供了对每个用户的资源限制管理

MAX_QUERIES_PER_HOUR:一个用户在一个小时内可以执行查询的次数(基本包含所有语句) MAX_UPDATES_PER_HOUR:一个用户在一个小时内可以执行修改的次数(仅包含修改数据库或表的语句) MAX_CONNECTIONS_PER_HOUR:一个用户在一个小时内可以连接 MySQL的时间

MAX_USER_CONNECTIONS:一个用户可以在同一时间连接MySQL实例的数量

从5.0.3版本开始,对用户'user'@'%.example.com'的资源限制是指所有 通过example.com域名主机连接user用户的连接,而不是分别指从 host1.example.com和host2.example.com主机过来的连接

通过执行create user/alter user设置/修改用户的资源限制

mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank'

-> WITH MAX_QUERIES_PER_HOUR 20

-> MAX_UPDATES_PER_HOUR 10

-> MAX_CONNECTIONS_PER_HOUR 5

-> MAX_USER_CONNECTIONS 2;

mysql> ALTER USER 'francis'@'localhost' WITH MAX_QUERIES_PER_HOUR 100;

取消某项资源限制既是把原先的值修改成0

mysql> ALTER USER 'francis'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 0;

当针对某个用户的max_user_connections非0时,则忽略全局系统参数 max_user_connections,反之则全局系统参数生效

二.设置MySQL用户的密码

执行create user创建用户和密码

mysql> CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

修改用户密码的方式包括:

mysql> ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

mysql> SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('mypass');

mysql> GRANT USAGE ON *.* TO 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

shell> mysqladmin -u user_name -h host_name password "new_password"

修改本身用户密码的方式包括:

mysql> ALTER USER USER() IDENTIFIED BY 'mypass';

mysql> SET PASSWORD = PASSWORD('mypass');

三.设置MySQL用户密码过期策略

设置系统参数default_password_lifetime作用于所有的用户账户

default_password_lifetime=180设置180天过期

default_password_lifetime=0 设置密码不过期

如果为每个用户设置了密码过期策略,则会覆盖上述系统参数

ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 90DAY;

ALTER USER'jeffrey'@'localhost'PASSWORD EXPIRE NEVER; 密码不过期

ALTER USER'jeffrey'@'localhost' PASSWORD EXPIRE DEFAULT; 默认过期策略

手动强制某个用户密码过期

ALTER USER 'jeffrey'@'localhost'PASSWORD EXPIRE;

mysql> SELECT 1;

ERROR1820 (HY000): You must SET PASSWORD before executing thisstatement

mysql> ALTER USER USER() IDENTIFIED BY 'new_password';

Query OK,0 rows affected (0.01 sec)

四.角色(role)和用户(user)

role是8.0的新特性 NEW!

role可以看做一个权限的集合,这个集合有一个统一的名字role名。可以给多个账户统一的某个role的权限权限的修改直接通过修改role来实现,不需要每个账户一个一个的grant权限,方便运维和管理。role可以创建、删除、修改并作用到他管理的账户上。

mysql>create role app_readonly;

Query OK,0 rows affected (0.09sec)

#创建一个role叫app_readonly只读

mysql> create user app1@localhost identified by 'mysql';

Query OK,0 rows affected (0.01sec)

#创建一个用户app1

mysql> grant select on *.*to app_readonly;

Query OK,0 rows affected (0.02sec)

#给app_readonly这个角色一个select权限

mysql>grant app_readonly to app1@localhost;

Query OK,0 rows affected (0.10sec)

#把用户和角色绑定

mysql> show grants forapp1@localhost;+------------------------------------------------+

| Grants for app1@localhost |

+------------------------------------------------+

| GRANT USAGE ON *.* TO `app1`@`localhost` |

| GRANT `app_readonly`@`%` TO `app1`@`localhost` |

+------------------------------------------------+#查询用户的权限

mysql> show grants for app1@localhost usingapp_readonly;+------------------------------------------------+

| Grants for app1@localhost |

+------------------------------------------------+

| GRANT SELECT ON *.* TO `app1`@`localhost` |

| GRANT `app_readonly`@`%` TO `app1`@`localhost` |

+------------------------------------------------+

2 rows in set (0.00sec)

#查询用户的权限

mysql>create role app_readwrite;

Query OK,0 rows affected (0.04sec)

mysql> create user app2@localhost identified by 'mysql';

Query OK,0 rows affected (0.04sec)

mysql> grant select,insert,delete,update on *.*to app_readwrite;

Query OK,0 rows affected (0.10sec)

mysql>grant app_readwrite to app2@localhost;

Query OK,0 rows affected (0.07sec)

mysql> show grants forapp2@localhost;+-------------------------------------------------+

| Grants for app2@localhost |

+-------------------------------------------------+

| GRANT USAGE ON *.* TO `app2`@`localhost` |

| GRANT `app_readwrite`@`%` TO `app2`@`localhost` |

+-------------------------------------------------+

2 rows in set (0.00sec)

mysql> show grants for app2@localhost usingapp_readwrite;+-------------------------------------------------------------------+

| Grants for app2@localhost |

+-------------------------------------------------------------------+

| GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO `app2`@`localhost` |

| GRANT `app_readwrite`@`%` TO `app2`@`localhost` |

+-------------------------------------------------------------------+

2 rows in set (0.00sec)

mysql> revoke app_readonly fromapp1@localhost;

Query OK,0 rows affected (0.10sec)

#解除绑定关系

mysql> show grants for app1@localhost usingapp_readonly;

ERROR3530 (HY000): `app_readonly`@`%` isnot granted to `app1`@`localhost`

mysql> show grants forapp1@localhost;+------------------------------------------+

| Grants for app1@localhost |

+------------------------------------------+

| GRANT USAGE ON *.* TO `app1`@`localhost` |

+------------------------------------------+

mysql权限认证_MySQL 8.0权限认证(下)相关推荐

  1. mysql ocp 认证 题库_Mysql 8.0 OCP认证考试原题题库整理(CUUG内部资料)-第1题

    Mysql 8.0 OCP认证考试原题题库整理(CUUG内部资料)-第1题 1.Choose the best answer. Examine these statements and output: ...

  2. mysql ocp 认证 题库_Mysql 8.0 OCP认证考试原题整理(CUUG内部题库)-第4题

    Mysql 8.0 OCP认证考试原题整理(CUUG内部题库)-第4题 时间:2020-12-01 来源: Mysql 8.0 OCP认证考试原题整理(CUUG内部题库)-第4题 4.Choose t ...

  3. mysql linux 用户_mysql用户和权限管理(Linux系统下)

    在mysql自带的库中有一个mysql,这个库包含了太多的东西,其中有一张表user,这张表存储了所有的用户信息. mysql> select user,host,password from u ...

  4. mysql-front权限管理_mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  5. android危险权限分组,Android 6.0权限请求相关及权限分组方法

    Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请. 权限分为3类,一组是Normal权限,无需申请,另一组是Dangerous,需申请,然后是特殊权限, ...

  6. mysql 函数索引_MySQL 8.0 索引特性1-函数索引

    函数索引顾名思义就是加给字段加了函数的索引,这里的函数也可以是表达式.所以也叫表达式索引. MySQL 5.7 推出了虚拟列的功能,MySQL8.0的函数索引内部其实也是依据虚拟列来实现的. 我们考虑 ...

  7. mysql权限清理_mysql清理用户权限

    1.mysql数据库地址文件格式 db:test  10.10.10.10  10.10.10.11 db:profile  10.10.10.12:3306   10.10.10.13:3307 2 ...

  8. mysql用户及权限管理_MySQL 用户及权限管理

    1.mysql用户的定义 在mysql中,用户由用户名和主机域组成的. 1.1 用户名的写法 mysql> create user test1@'localhost'; 注意:用户名不要以数字. ...

  9. mysql权限问题_Mysql 数据库的权限问题

    之前一直对Mysql数据库的权限没太理解 root用户具有最高的权限,也就是超级用户,root用户可以看到数据库中的所有的内容,而其它用户只能对经过root用户授权过的数据库进行操作,如果想在其它用户 ...

最新文章

  1. 最全面的Python重点知识汇总,建议收藏!
  2. 办公求生指南:分享10个可以提高办公效率的优质神器
  3. soj1201- 约数
  4. 锁定计算机好在下游戏吗,巧用win7锁定计算机 防止孩子沉迷游戏
  5. 地图篇-01.获取用户位置
  6. Python函数的动态参数
  7. ffplay分析 (音视频同步:主时钟为音频)
  8. android 学习 解决R.java不能自动生成问题,编译时adb.exe 找不到问题
  9. Elasticsearch 实现自定义排序插件(转载)
  10. uniapp 如何给搜索框设值_uni-app 顶部配置搜索框和左右图标
  11. git优点缺点(简单介绍)
  12. 自由移动的气泡_MBBR工艺—移动床生物膜反应器
  13. ssh 遍历IPS 进行连接
  14. hbase安装与配置
  15. ftp多线程上传工具,3大值得推荐的ftp多线程上传工具
  16. linux下的open file是什么,linux修改open files数
  17. java excel 列合并单元格_java怎么操作excel合并单元格
  18. 金球奖提名!5家自主品牌「争夺」年度高阶智能辅助驾驶系统
  19. 手把手教你做一个APP应用(含源码)
  20. 【后端】--process information unavailable解决办法[详细版]

热门文章

  1. 直观解读【时间反向传播bptt】
  2. markdown空格缩进以及HTML空格实体
  3. YY-测试实习生笔试+面试复盘
  4. 【系统分析师之路】第十九章 知识产权与标准化(章节重点)
  5. 种子读取php,php读取torrent种子文件内容的方法(测试可用),_PHP教程
  6. 联合国“全球脉动”计划 《大数据开发:机遇与挑战》
  7. apple watch怎么用计算机,如何用 Apple Watch 控制电脑
  8. 如何用iphone解锁iwatch?
  9. Android中ps命令各字段的含义
  10. MacOS系统实现React-Native跨平台开发(IOS和Android)